Problemas para hacer un cliente de NodeJS para la API de lugares de lugares Yahoo

StackOverflow https://stackoverflow.com/questions/5305257

  •  24-10-2019
  •  | 
  •  

Pregunta

Necesito hacer una aplicación de cliente NodeJS que pueda enviar una solicitud de publicación a la API de mantenimiento de lugares de Yahoo. Pasé 1 día en esto sin éxito hasta ahora. Veo los paquetes HTTP en Wireshark y tampoco se queja.

Estoy usando el siguiente código:

var http = require('http');

var options = {
        host: 'wherein.yahooapis.com',
        port: 80,
        path: '/v1/document',
        method: 'POST'
};

var req = http.request(options, function(res) {
  console.log('STATUS: ' + res.statusCode);
  console.log('HEADERS: ' + JSON.stringify(res.headers));
//  res.setEncoding('utf8');
  res.on('data', function (chunk) {
    console.log('BODY: ' + chunk);
  });
});
// write data to request body
//req.end('documentURL=http://www.usfca.edu&documentType=text/html&outputType=xml&appid=MrIhH33V34GNOpw91rqJuijGeiLQ7l4hhlJXXt3fOTS0.jAUY8kqhu6SxMhy7J90OSWElw--');
req.write('documentURL%3Dhttp%3A//www.usfca.edu%26documentType%3Dtext/html%26outputType%3Dxml%26appid%3DMrIhH33V34GNOpw91rqJuijGeiLQ7l4hhlJXXt3fOTS0.jAUY8kqhu6SxMhy7J90OSWElw--');
req.end();

Hago lo mismo en PHP y funciona allí. Se agradecen cualquier sugerencia. Se produjeron problemas similares cuando intenté ejecutar mi propio servidor en expressjs. De alguna manera, el código anterior no produce la solicitud HTTP correcta. Pero el fragmento anterior se toma directamente de la documentación de NodeJS

¡¡Por favor ayuda!!

¡Recibo el código de respuesta 400 HTTP que dice ninguno de los documentos de documentos que no se encuentran!

  • Lalith
¿Fue útil?

Solución

Considere usar Biblioteca de solicitudes de Mikeal Para simplificar su vida y evitar cualquier problema extraño:

npm install request

Además, detente en #node.js y hacer preguntas para una respuesta más rápida. Asegúrese de informar con sus hallazgos.

Otros consejos

La solicitud de node.js http no genera el tipo de contenido de encabezado apropiado, así que simplemente agréguela manualmente. No necesitas express hasta ahora ...

var options = {
    host: 'wherein.yahooapis.com',
    port: 80,
    method: 'POST',
    path: '/v1/document',
    headers: {
        'Content-Type': 'application/x-www-form-urlencoded'
    }
};
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top