Content-Type भेजें: नोड के साथ आवेदन / json पोस्ट। js


115

NodeJS में हम इस तरह से HTTP अनुरोध कैसे कर सकते हैं? उदाहरण या मॉड्यूल की सराहना की।

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

जवाबों:


284

मिकाइल का अनुरोध मॉड्यूल यह आसानी से कर सकता है:

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

2
इस उपयोगी उत्तर के लिए धन्यवाद। अंत में मुझे लगता है कि विकल्प अच्छी तरह से प्रलेखित है। लेकिन
बहुतों

1
यह मेरे लिए काम नहीं किया जब तक कि मैंने headers: {'content-type' : 'application/json'},विकल्प नहीं जोड़ा ।
गिलहर्मे सम्प्राय

- NodeJs 'अनुरोध' मॉड्यूल पदावनत है। - हम 'http' मॉड्यूल का उपयोग कैसे करेंगे? धन्यवाद।
आंद्रेई डियाकोन्सकु

11

सरल उदाहरण

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

जैसा कि आधिकारिक प्रलेखन कहता है:

शरीर - PATCH, POST और PUT अनुरोधों के लिए निकाय निकाय। बफ़र, स्ट्रिंग या रीडस्ट्रीम होना चाहिए। यदि json सच है, तो शरीर को JSON-serializable ऑब्जेक्ट होना चाहिए।

JSON भेजते समय आपको इसे विकल्प के शरीर में रखना होगा।

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

4
क्या यह सिर्फ मुझे या उसके दस्तावेज को चूसता है?
लुसियो

4

केवल किसी कारण से यह आज मेरे लिए काम कर रहा है। अन्य सभी वेरिएंट API से खराब json त्रुटि में समाप्त हुए ।

इसके अलावा, 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

हेडर और पोस्ट के साथ अनुरोध का उपयोग करना।

var options = {
            headers: {
                  'Authorization': 'AccessKey ' + token,
                  'Content-Type' : 'application/json'
            },
            uri: 'https://myurl.com/param' + value',
            method: 'POST',
            json: {'key':'value'}
 };
      
 request(options, function (err, httpResponse, body) {
    if (err){
         console.log("Hubo un error", JSON.stringify(err));
    }
    //res.status(200).send("Correcto" + JSON.stringify(body));
 })

0

चूंकि requestमॉड्यूल जो अन्य उत्तरों का उपयोग करता है, उन्हें हटा दिया गया है, क्या मैं निम्नलिखित पर स्विच करने का सुझाव दे सकता हूं node-fetch:

const fetch = require("node-fetch")

const url = "https://www.googleapis.com/urlshortener/v1/url"
const payload = { longUrl: "http://www.google.com/" }

const res = await fetch(url, {
  method: "post",
  body: JSON.stringify(payload),
  headers: { "Content-Type": "application/json" },
})

const { id } = await res.json()
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.