it-swarm.com.de

send Content-Type: application/json post mit node.js

Wie können wir eine solche HTTP-Anfrage in NodeJS stellen? Beispiel oder Modul geschätzt.

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

Mikeal's request Modul kann dies leicht tun:

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

Einfaches Beispiel

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

Wie die offizielle Dokumentation sagt:

body - Entity Body für PATCH-, POST - und PUT-Anforderungen. Muss ein Puffer, ein String oder ein ReadStream sein. Wenn json true ist, muss body ein JSON-serialisierbares Objekt sein.

Wenn Sie JSON senden, müssen Sie es nur in den Hauptteil der Option einfügen.

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

Aus irgendeinem Grund funktionierte heute nur das für mich. Alle anderen Varianten landeten in bad json error von API.

Außerdem noch eine andere Variante zum Erstellen der Anforderung POST mit JSON-Nutzdaten.

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