0

YAHOOPlacemakerAPIにPOSTリクエストを送信できるnodejsクライアントアプリケーションを作成する必要があります。私はこれに1日を費やしましたが、これまでのところ成功していません。Wiresharkにhttpパケットが表示されますが、文句もありません。

私は次のコードを使用しています:

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のドキュメントから直接取得したものです

助けてください!!

documentURL nore documentContent notfound!という400HTTP応答コードが表示されます。

  • ラリス
4

2 に答える 2

1

Mikealのリクエストライブラリを使用して、生活を簡素化し、奇妙な問題を回避することを検討してください。

npm install request

また、#node.jsに立ち寄って、より迅速な対応のために質問をしてください。調査結果を必ず報告してください。

于 2011-03-30T04:59:41.767 に答える
1

Node.js httpリクエストは適切なヘッダーContent-Typeを生成しないため、手動で追加するだけです。今のところExpressは必要ありません...

var options = {
    host: 'wherein.yahooapis.com',
    port: 80,
    method: 'POST',
    path: '/v1/document',
    headers: {
        'Content-Type': 'application/x-www-form-urlencoded'
    }
};
于 2012-01-21T08:23:14.227 に答える