मैं Google QPX एक्सप्रेस API [1] को नोडज और अनुरोध [2] का उपयोग करके HTTP POST अनुरोध करने की कोशिश कर रहा हूं ।
मेरा कोड इस प्रकार दिखता है:
// create http request client to consume the QPX API
var request = require("request")
// JSON to be passed to the QPX Express API
var requestData = {
"request": {
"slice": [
{
"origin": "ZRH",
"destination": "DUS",
"date": "2014-12-02"
}
],
"passengers": {
"adultCount": 1,
"infantInLapCount": 0,
"infantInSeatCount": 0,
"childCount": 0,
"seniorCount": 0
},
"solutions": 2,
"refundable": false
}
}
// QPX REST API URL (I censored my api key)
url = "https://www.googleapis.com/qpxExpress/v1/trips/search?key=myApiKey"
// fire request
request({
url: url,
json: true,
multipart: {
chunked: false,
data: [
{
'content-type': 'application/json',
body: requestData
}
]
}
}, function (error, response, body) {
if (!error && response.statusCode === 200) {
console.log(body)
}
else {
console.log("error: " + error)
console.log("response.statusCode: " + response.statusCode)
console.log("response.statusText: " + response.statusText)
}
})
मैं क्या करने की कोशिश कर रहा हूँ JSON मल्टीपार्ट तर्क का उपयोग कर रहा है [3]। लेकिन उचित JSON प्रतिक्रिया के बजाय मुझे एक त्रुटि मिली (400 अपरिभाषित)।
जब मैं CURL के बजाय उसी JSON और API कुंजी का उपयोग करके एक अनुरोध करता हूं, तो यह ठीक काम करता है। इसलिए मेरी API कुंजी या JSON में कुछ भी गलत नहीं है।
मेरे कोड में क्या गलत है?
संपादित करें :
काम CURL उदाहरण:
i) मैंने JSON को सहेजा है जिसे मैं "request.json" नामक फ़ाइल में अपने अनुरोध के लिए भेजूंगा:
{
"request": {
"slice": [
{
"origin": "ZRH",
"destination": "DUS",
"date": "2014-12-02"
}
],
"passengers": {
"adultCount": 1,
"infantInLapCount": 0,
"infantInSeatCount": 0,
"childCount": 0,
"seniorCount": 0
},
"solutions": 20,
"refundable": false
}
}
ii) फिर, टर्मिनल में मैंने उस निर्देशिका पर स्विच किया जिसमें नव निर्मित request.json फ़ाइल स्थित थी और चला रही थी (myApiKey का अर्थ है मेरी वास्तविक एपीआई कुंजी स्पष्ट रूप से)
curl -d @request.json --header "Content-Type: application/json" https://www.googleapis.com/qpxExpress/v1/trips/search?key=myApiKey
[१] https://developers.google.com/qpx-express/ [२] एक http अनुरोध क्लाइंट जो नोडज के लिए डिज़ाइन किया गया है: https://www.npmjs.org/package/request [३] यहाँ एक उदाहरण है जो मुझे मिला https://www.npmjs.org/package/request#multipart-related [4] QPX एक्सप्रेस API 400 पार्स त्रुटि लौटा रहा है