Domanda

ho bisogno di fare un'applicazione client nodejs in grado di inviare una richiesta POST a Yahoo PlaceMaker API. Ho trascorso 1 giorno su questo senza successo finora. Vedo il http pacchetti in Wireshark e non si lamenta neanche.

Sto usando il seguente codice:

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();

faccio lo stesso in PHP e funziona lì. Tutti i suggerimenti sono apprezzati. Problemi simili si sono verificati quando ho cercato di eseguire il mio server su expressjs. In qualche modo il codice di cui sopra non produce la richiesta HTTP corretto. Ma il pezzo di codice sopra viene prelevata direttamente dalla documentazione NodeJs

Si prega di Aiuto !!

I ottenere il codice di risposta 400 HTTP dicendo né DocumentUrl nore documentContent non trovato!

  • Lalith
È stato utile?

Soluzione

Si consideri utilizzando di Mikeal richiesta biblioteca per semplificare la vita ed evitare eventuali problemi strani:

npm install request

Inoltre, fermata in # node.js e fare domande per un risposta più rapida. Assicurati di riferire con i risultati.

Altri suggerimenti

Node.js http richiesta non genera l'appropriato header Content-Type, quindi basta aggiungerlo manualmente. Non è necessario espresso finora ...

var options = {
    host: 'wherein.yahooapis.com',
    port: 80,
    method: 'POST',
    path: '/v1/document',
    headers: {
        'Content-Type': 'application/x-www-form-urlencoded'
    }
};
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top