web-dev-qa-db-ja.com

Content-Typeを送信:node.jsを使用したapplication / json投稿

NodeJSでこのようなHTTPリクエストを作成するにはどうすればよいですか?感謝する例またはモジュール。

curl https://www.googleapis.com/urlshortener/v1/url \
  -H 'Content-Type: application/json' \
  -d '{"longUrl": "http://www.google.com/"}'
108
Radoslav

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.
  }
});
267
Josh Smith

簡単な例

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);  
}); 
10
Poonam Gupta

公式ドキュメント が言うように:

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)
8
JiN

何らかの理由で、これだけが今日私のために働いた。他のすべてのバリアントは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/"})
});
2
Paul T. Rawkeen