Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

363
Visualizações
La misma solicitud a la API externa funciona en go, postman, curl, pero no funciona en node.js

Tengo un problema extraño al realizar una solicitud a la API externa. Básicamente, obtuve una respuesta de error 403 para la solicitud HTTP, pero... solo cuando la llamé desde el entorno del nodo. Probé con curl a través de la terminal y está bien. También probé desde Postman y native go con el paquete net/http y todo está bien, obtuve 200 respuestas. Pero no importa qué herramienta use en node.js (request, axios, uniest, got) no puedo hacerlo. Me encantaría compartir la solicitud completa contigo, pero lamentablemente no puedo :(

Todo lo que puedo mostrarle son algunos detalles de la respuesta, cuando lo llamo desde el entorno node.js.

Estos son encabezados enviados por el servidor cuando obtuve 403 :

 headers: { server: 'AkamaiNetStorage', 'content-length': '228', 'content-type': 'application/json', 'x-edge-error': 'halt', 'cache-control': 'max-age=122', date: 'Thu, 21 Oct 2021 16:17:41 GMT', connection: 'close' },

Y la parte de los datos de respuesta se ve así:

 data: { edge_error: 'halt', ref_id: '18.9d6656b8.1634833061.4b9f14b', }

Soy consciente de que la pregunta es extraña y probablemente no puedas ayudarme con no tantos detalles, pero lo intentaré de todos modos. Entonces, si alguien tiene idea de lo que podría ayudar, siéntase libre de proponer una respuesta.

Saludos ;)

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Esto probablemente se deba a la huella digital TLS. Akamai puede detectar que está utilizando Node.JS en función de la información recopilada durante el protocolo de enlace TLS (conjuntos de cifrado, etc.) cuando envía una solicitud. El sitio web debe haber establecido una regla a través de Akamai para bloquear Node.

Prueba algo como esto:

 const tls = require('tls'); const https = require('https'); const defaultCiphers = tls.DEFAULT_CIPHERS.split(':'); const shuffledCiphers = [ defaultCiphers[0], // Swap the 2nd & 3rd ciphers: defaultCiphers[2], defaultCiphers[1], ...defaultCiphers.slice(3) ].join(':'); request = require('https').get('https://google.com', { ciphers: shuffledCiphers }).on('response', (res) => { console.log(res.statusCode); }); // source: https://httptoolkit.tech/blog/tls-fingerprinting-node-js/

Puede encontrar más información sobre esto aquí: https://httptoolkit.tech/blog/tls-fingerprinting-node-js/

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda