• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Evaluaciones
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

574
Vistas
¿Cómo reproducir una solicitud HTTP de Titiritero?

Usando Titiritero, puedo interceptar HTTPResponses y sus HTTPRequests:

 page.on("response", async response => { let request = response.request(); // Getting the response request let responseHeaders = response.headers(); // Check response headers response.buffer().then(buffer => { // Play with response content }); })

Dependiendo del contenido de la respuesta, necesito enviar la solicitud nuevamente como una nueva y obtener su búfer de respuesta. Instanciar una solicitud idéntica y nueva es una opción válida.

Sé que podría usar node-fetch como último recurso, pero Puppeteer parece tener todo incorporado para hacerlo sin agregar paquetes.

¿Sabes cómo lograr esto?

  • Titiritero HTTPRequest doc
  • Titiritero HTTPRequest clase
over 3 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Puede usar page.evaluate para enviar una solicitud de publicación usando la API de búsqueda

 await page.evaluate(() => { return fetch('url', {method: 'POST', body: 'test' }).then(res => res.json()) })

Entonces puede hacer una solicitud después de que se dispare el evento requestfinished .

 page.setRequestInterception(true) page.on('requestfinished', async (request: Request) => { let response = request.response() // Getting the response request let responseHeaders = response.headers() // Check response headers let responseBuffer = await response.buffer() // Get the buffer required let responseJSON = await response.json() // Get parsed JSON body await page.evaluate(([headers, buffer, json]) => { // Replay request with buffer received let someData1 = buffer.toString() // Change buffer to string type let someData2 = headers['Content-Type'] // or maybe use some headers data let someData3 = json.properties.value // or use response data object properties // This fetch API below will do the rest return fetch('url', { method: 'POST', body: 'test' }).then(res => res.json()) }, [responseHeaders, responseBuffer, responseJSON]) })
over 3 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda