坏的请求.HTTP POST到api

Bad request. HTTP POST to api

本文关键字:api POST HTTP 请求      更新时间:2023-09-26

我试图从api返回一些数据,但是当我击中服务器时,我收到一个错误的请求消息。我认为问题在于我的JSON Stringify,我是否正确使用这个函数来连接我的请求体?

输出:

{ request: 
   { passengers: { kind: 'qpxexpress#passengerCounts', adultCount: 1 },
     slice: [ [Object] ],
     saleCountry: 'GB',
     ticketingCountry: 'GB',
     solutions: 10 } }
Upload successful!  Server responded with: {
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "badRequest",
    "message": "Invalid inputs: received empty request."
   }
  ],
  "code": 400,
  "message": "Invalid inputs: received empty request."
 }
}
代码:

var express = require('express')
var router = express.Router()
var request = require('request')
/* GET home page. */
router.get('/', function(req, res, next) {
  res.render('index', { title: 'Express' })
})
let flightRequest = {
  "request": {
      "passengers": {
        "kind": "qpxexpress#passengerCounts",
        "adultCount": 1
      },
      "slice": [{
        "kind": "qpxexpress#sliceInput",
        "origin": "LHR",
        "destination": "OSL",
        "date": "2016-12-03",
        "permittedDepartureTime": {
          "kind": "qpxexpress#timeOfDayRange",
          "earliestTime": "06:00",
          "latestTime": "11:00"
        }}],
      "saleCountry": "GB",
      "ticketingCountry": "GB",
      "solutions": 10
    }
  }
console.log(JSON.stringify("hello" + flightRequest))
JSON.stringify(flightRequest)
console.log(flightRequest)
request.post({url:'https://www.googleapis.com/qpxExpress/v1/trips/search?key=XXXXXXXXXXXXXXXXXXXXXXXX', flightRequest: flightRequest}, function optionalCallback(err, httpResponse, body) {
  if (err) {
    return console.error('upload failed:', err);
  }
  console.log('Upload successful!  Server responded with:', body);
});
module.exports = router

我认为您需要按如下方式发布请求

request({
    url: 'https://www.googleapis.com/qpxExpress/v1/trips/search?key=XXXXXXXXXXXXXXXXXXXXXXXX',
    method: "POST",
    json: JSON.stringify(flightRequest)
}, function optionalCallback(err, httpResponse, body) { ...

或者

request.post({
    url: 'https://www.googleapis.com/qpxExpress/v1/trips/search?key=XXXXXXXXXXXXXXXXXXXXXXXX',
    json: JSON.stringify(flightRequest)
}, ...

我是否正确使用了这个函数来连接我的请求体?

这段代码

  • <>之前让flightRequest ={"请求":{"乘客":{"类型":"qpxexpress # passengerCounts","adultCount":1},"片":({"类型":"qpxexpress # sliceInput","起源":"LHR","目的地":"OSL","日期":"2016-12-03"," permittedDepartureTime ": {"类型":"qpxexpress # timeOfDayRange",:"earliestTime 06:00时","latestTime":"11"}}],"saleCountry":"g","ticketingCountry":"g","解决方案":10}}let flightAppend = {"追加文本":"hello"}var obj =对象。分配(flightAppend flightRequest)console.log (JSON.stringify (obj)

产生这个输出

  • <>之前{"追加文本":"hello","请求":{"乘客":{"类型":"qpxexpress # passengerCounts","adultCount":1},"片":({"类型":"qpxexpress # sliceInput","起源":"LHR","目的地":"OSL","日期":"2016-12-03"," permittedDepartureTime ": {"类型":"qpxexpress # timeOfDayRange",:"earliestTime 06:00时","latestTime":"11"}}],"saleCountry":"g","ticketingCountry":"g","解决方案":10}}

我不知道这是不是你想要的,或者你在API的哪一边,但输出是有效的JSON

与生成"hello[object object]"的原始代码相反