我试图在Python上使用Amadeus飞行可用度API的POST方法,但仍然给我错误400。有什么建议吗?非常感谢。
from amadeus import Client, ResponseError, Location
import requests
amadeus = Client(
client_id='My ID',
client_secret='My Secret')
try:
flights = amadeus.get('/v2/shopping/flight-offers',originLocationCode = "GIG",destinationLocationCode = "ATL",departureDate = "2023-01-31",nonStop = "true",travelClass = "BUSINESS",adults = 1)
body = flights.data[0]
print(body)
except ResponseError as error:
print(error)
try:
availability = amadeus.post('/v1/shopping/availability/flight-availabilities', body)
print(availability.result)
except ResponseError as error:
print('headers: ', error.response.request.headers)
print('body: ', error.response.request.params)发布于 2022-08-24 00:05:00
根据他们的API文档,第二个API调用的主体需要采用以下格式:
{
"originDestinations": [
{
"id": "1",
"originLocationCode": "BOS",
"destinationLocationCode": "MAD",
"departureDateTime": {
"date": "2021-11-14",
"time": "21:15:00"
}
}
],
"travelers": [
{
"id": "1",
"travelerType": "ADULT"
}
],
"sources": [
"GDS"
]
}现在,你只是在给第二个电话,从第一个回报,这似乎不是他们想要的。
您还可能需要给出适当的标题,如下所示:
headers = {"Content-Type": "application/json; charset=utf-8"}那你就会做
response = requests.post(url, headers=headers, json=body)https://stackoverflow.com/questions/73465896
复制相似问题