Google QPX Express API [1] için nodejs ve istek [2] kullanarak bir HTTP POST isteği yapmaya çalışıyorum .
Kodum aşağıdaki gibi görünüyor:
// 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)
}
})
Yapmaya çalıştığım şey, JSON'yi çok parçalı bağımsız değişken [3] kullanarak geçirmek. Ancak doğru JSON yanıtı yerine bir hata aldım (400 tanımsız).
Bunun yerine aynı JSON ve API Anahtarını kullanarak CURL kullanarak bir istekte bulunduğumda iyi çalışıyor. Yani API anahtarımda veya JSON'da yanlış bir şey yok.
Kodumun nesi var?
DÜZENLE :
çalışma CURL örneği:
i) İsteğime ileteceğim JSON'yi "request.json" adlı bir dosyaya kaydettim:
{
"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) daha sonra, terminalde yeni oluşturulan request.json dosyasının bulunduğu dizine geçtim ve çalıştırdım (myApiKey açıkça benim gerçek API Anahtarım anlamına geliyor):
curl -d @request.json --header "Content-Type: application/json" https://www.googleapis.com/qpxExpress/v1/trips/search?key=myApiKey
[1] https://developers.google.com/qpx-express/ [2] nodejs için tasarlanmış bir http istek istemcisi: https://www.npmjs.org/package/request [3] bulduğum bir örneği burada bulabilirsiniz https://www.npmjs.org/package/request#multipart-related [4] QPX Express API 400 ayrıştırma hatası döndürüyor