簡體   English   中英

調試錯誤請求400錯誤

[英]Debugging Bad Request 400 error

我正嘗試從Google的QPX Express API返回航班列表,但是我卻收到了錯誤的請求響應:

{ StatusCodeError: 400 - {"error":{"errors":[{"domain":"global","reason":"badRequest","message":"Invalid inputs: received empty request."}],"code":400,"message":"Invalid inputs: received empty request."}}

我正在處理請求的結構有問題嗎? 我正在使用request-promise

const options = {
  method: 'POST',
  uri: 'https://www.googleapis.com/qpxExpress/v1/trips/search?key=XXXXXXXXXXXXXXX',

  qs: {
   "request": {
     "passengers": {
       "adultCount": 1 },
       "slice": [{"origin": "BOS",
                  "destination": "LAX",
                  "date": "2017-03-01"
                }]
              }
        },
    json: true
}

request(options)
  .then(function (response) {
    console.log(response)
  })
  .catch(function (err) {
    console.log(err)
  })

核實:

const options = {
  method: 'POST',
  uri: 'https://www.googleapis.com/qpxExpress/v1/trips/search?key=XXXXXXXXXXXXXXX',

  qs: {
   "request": {
     "passengers": {
       "adultCount": 1 },
       "slice": [{"origin": "BOS",
                  "destination": "LAX",
                  "date": "2017-03-01"
                }]
              }
        },
    json: true
};

request(options)
  .then(function (response) {
    console.log(response);
  })
  .catch(function (err) {
    console.log(err);
  });

您忘記了結束uri字符串。 另外,請不要忘記分號。

編輯:嘗試:

request({
    url: (your url here),
    method: "POST",
    json: requestData
},

其中requestData將是您的qs。

我已經解決了這個問題。 該請求需要將數據包含在body鍵中,並且內容類型設置為JSON。

現在,這將按預期從API返回數據。

const options = {
  method: 'POST',
  uri: 'https://www.googleapis.com/qpxExpress/v1/trips/search?&key=XXXXXXXXXXXXXXXXXXXX',
  body: {
  "request": {
    "passengers": {
      "adultCount": "1"
    },
    "slice": [
      {
        "origin": "SFO",
        "destination": "LAX",
        "date": "2017-06-19"
      }
    ],
    "solutions": "1"
  }
},
  json: true
}

request(options)
  .then(function (response) {
    console.log(response.trips.tripOption[0].saleTotal)
  })
  .catch(function (err) {
    console.log(err)
  })

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM