Проблемы при создании клиента nodejs для API Java Placemaker - PullRequest
0 голосов
/ 15 марта 2011

Мне нужно создать клиентское приложение nodejs, которое может отправлять запрос POST в API YAHOO Placemaker. Я потратил 1 день на это безуспешно. Я вижу http-пакеты в Wireshark, и они тоже не жалуются.

Я использую следующий код:

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

Я делаю то же самое в php, и он там работает. Любые предложения приветствуются. Подобные проблемы возникали, когда я пытался запустить свой собственный сервер на expressjs. Каким-то образом приведенный выше код не выдает правильный HTTP-запрос. Но приведенный выше фрагмент взят прямо из документации NodeJ

Пожалуйста, помогите !!

Я получаю код ответа HTTP 400, в котором говорится, что ни documentURL, ни documentContent не найден!

  • Лалитй

Ответы [ 2 ]

1 голос
/ 21 января 2012

Node.js http-запрос не генерирует соответствующий заголовок Content-Type, поэтому просто добавьте его вручную.Вам пока не нужен экспресс ...

var options = {
    host: 'wherein.yahooapis.com',
    port: 80,
    method: 'POST',
    path: '/v1/document',
    headers: {
        'Content-Type': 'application/x-www-form-urlencoded'
    }
};
1 голос
/ 30 марта 2011

Подумайте об использовании библиотеки запросов Mikeal , чтобы упростить свою жизнь и избежать любых странных проблем:

npm install request

Также зайдите в # node.js и задайте вопросыдля более быстрого ответа.Обязательно сообщайте свои выводы.

...