繁体   English   中英

错误的请求。 HTTP POST到api

[英]Bad request. HTTP POST to api

我正在尝试从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)
}, ...

我是否已正确使用此函数来连接我的请求正文?

本守则

  • \n 让flightRequest = \n {\n   “请求”:{\n     “乘客”:{\n       “ kind”:“ qpxexpress#passengerCounts”,\n       “ adultCount”:1\n     },\n     “切片”:[\n       {\n         “ kind”:“ qpxexpress#sliceInput”,\n         “ origin”:“ LHR”,\n         “目的地”:“ OSL”,\n         “ date”:“ 2016-12-03”,\n         “ permittedDepartureTime”:{\n           “ kind”:“ qpxexpress#timeOfDayRange”,\n           “最早时间”:“ 06:00”,\n           “ latestTime”:“ 11:00”\n         }\n       }\n     ],\n     “ saleCountry”:“ GB”,\n     “ ticketingCountry”:“ GB”,\n     “解决方案”:10\n   }\n }\n let flightAppend = {“附加文字”:“你好”}\n var obj = Object.assign(flightAppend,flightRequest)\n console.log(JSON.stringify(obj)) 

产生此输出

  • \n {\n   “ append text”:“ hello”\n   “请求”:{\n     “乘客”:{\n       “ kind”:“ qpxexpress#passengerCounts”,\n       “ adultCount”:1\n     },\n     “切片”:[\n       {\n         “ kind”:“ qpxexpress#sliceInput”,\n         “ origin”:“ LHR”,\n         “目的地”:“ OSL”,\n         “ date”:“ 2016-12-03”,\n         “ permittedDepartureTime”:{\n           “ kind”:“ qpxexpress#timeOfDayRange”,\n           “最早时间”:“ 06:00”,\n           “ latestTime”:“ 11:00”\n         }\n       }\n     ],\n     “ saleCountry”:“ GB”,\n     “ ticketingCountry”:“ GB”,\n     “解决方案”:10\n   }\n } 

我不知道这是您要查找的内容,还是在API的哪一边,但是输出是有效的JSON

与产生“ hello [object Object]”的原始代码相反

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM