我如何为Sabre Rail Search单程旅行提出一个好的帖子请求?我收到‘ERR_BAD_REQUEST’错误请求

2w2cym1i  于 2022-10-21  发布在  iOS
关注(0)|答案(1)|浏览(185)

https://developer.sabre.com/docs/rest_apis/ground/content_services_rail/search_single_trip/reference-documentation
在POST请求中需要“questBody”和“earch Criteria”。
如果我没有指定“questBody”,我就会收到“no访问特权”错误。
但是当我将“questBody”添加到参数时,我得到[AxiosError:请求失败,状态代码为400]{代码:‘ERR_BAD_REQUEST’,...
我还是不明白。我应该如何将“questBody”和“earch Criteria”合并到代码和请求中?在JSON示例中,他们甚至将其放在“payload”中,当我将“earch Criteria”放在“payload”中而不是params.questBody时,我收到了“没有特权”的错误。
不管我把“questBody”和“earch Criteria”放在哪里,似乎都得不到一个成功的响应。

const optionsToUse = {
  method: 'POST',
  url: "https://api-crt.cert.havail.sabre.com/v1/rail/offers/journeys/1S",
  params: {
    marketingCarrierCode: "1S",
    requestBody : {
      "searchCriteria" : [ {
        "journeyCriteria" : {
          "departure" : {
            "locationId" : "FRPLY",
            "dateTime" : "2022-08-02T07:07"
          },
          "arrival" : {
            "locationId" : "FRLPD"
          }
        },
        "passengerCriteria" : [ {
          "passengerCode" : "ADULT"
        } ]
      } ]
    }
  },
  headers: {
    Authorization: "Bearer " + access_token
  }
}

axios.request(optionsToUse).then(function (response) {
    console.log(response.data);
}).catch(function (error) {
    console.error(error);
});
fafcakar

fafcakar1#

怀伦,
您需要传递正文中的数据,而不是参数,并删除参数属性,因为market ingCarrierCode是url中的一个参数,而不是查询参数:

const optionsToUse = {
  method: 'POST',
  url: "https://api-crt.cert.havail.sabre.com/v1/rail/offers/journeys/1S",
  data: {
    "searchCriteria" : [ {
      "journeyCriteria" : {
        "departure" : {
          "locationId" : "FRPLY",
          "dateTime" : "2022-08-02T07:07"
        },
        "arrival" : {
          "locationId" : "FRLPD"
        }
      },
      "passengerCriteria" : [ {
        "passengerCode" : "ADULT"
      } ]
    } ]
  },
  headers: {
    Authorization: "Bearer " + access_token
  }
}

(请求配置https://axios-http.com/docs/req_config的Axios文档)

相关问题