NodeJSでこのようなHTTPリクエストを作成するにはどうすればよいですか?感謝する例またはモジュール。
curl https://www.googleapis.com/urlshortener/v1/url \
-H 'Content-Type: application/json' \
-d '{"longUrl": "http://www.google.com/"}'
Mikealのリクエスト モジュールはこれを簡単に行うことができます:
var request = require('request');
var options = {
uri: 'https://www.googleapis.com/urlshortener/v1/url',
method: 'POST',
json: {
"longUrl": "http://www.google.com/"
}
};
request(options, function (error, response, body) {
if (!error && response.statusCode == 200) {
console.log(body.id) // Print the shortened url.
}
});
簡単な例
var request = require('request');
//Custom Header pass
var headersOpt = {
"content-type": "application/json",
};
request(
{
method:'post',
url:'https://www.googleapis.com/urlshortener/v1/url',
form: {name:'hello',age:25},
headers: headersOpt,
json: true,
}, function (error, response, body) {
//Print the Response
console.log(body);
});
公式ドキュメント が言うように:
body-PATCH、POSTおよびPUT要求のエンティティ本体。 Buffer、String、またはReadStreamでなければなりません。 jsonがtrueの場合、bodyはJSONシリアル化可能なオブジェクトでなければなりません。
JSONを送信するときは、オプションの本文にそれを入れるだけです。
var options = {
uri: 'https://myurl.com',
method: 'POST',
json: true,
body: {'my_date' : 'json'}
}
request(options, myCallback)
何らかの理由で、これだけが今日私のために働いた。他のすべてのバリアントはbad json APIからのエラーになりました。
さらに、JSONペイロードを使用して必要なPOSTリクエストを作成するためのさらに別のバリアント。
request.post({
uri: 'https://www.googleapis.com/urlshortener/v1/url',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({"longUrl": "http://www.google.com/"})
});