web-dev-qa-db-fra.com

envoyer un message Content-Type: application/json avec node.js

Comment pouvons-nous faire une requête HTTP comme celle-ci dans NodeJS? Exemple ou module apprécié.

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

La requête de Mikeal module peut le faire facilement:

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

Exemple simple

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

Comme le documentation officielle dit:

body - body pour les requêtes PATCH, POST et PUT. Doit être un tampon, une chaîne ou ReadStream. Si json est true, alors body doit être un objet sérialisable JSON.

Lors de l'envoi de JSON, il vous suffit de le mettre dans le corps de l'option.

var options = {
    uri: 'https://myurl.com',
    method: 'POST',
    json: true,
    body: {'my_date' : 'json'}
}
request(options, myCallback)
8
JiN

Pour une raison quelconque, cela a fonctionné pour moi aujourd'hui. Toutes les autres variantes ont abouti dans bad json error de l’API.

En outre, encore une autre variante pour créer la demande requise POST avec la charge JSON.

request.post({
    uri: 'https://www.googleapis.com/urlshortener/v1/url',
    headers: {'Content-Type': 'application/json'},
    body: JSON.stringify({"longUrl": "http://www.google.com/"})
});

0
Paul T. Rawkeen