You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Python中调用Amadeus航班可用性API遇400错误求助

Amadeus航班可用性API POST请求返回400错误的排查与解决建议

核心问题分析

你遇到的400错误大概率是请求体格式不符合接口要求,结合代码来看主要有以下问题:

  • 请求体结构不匹配:/v1/shopping/availability/flight-availabilities接口要求接收包含flightOffers数组的JSON结构,但你直接传入了/v2/shopping/flight-offers返回的单条航班数据,结构不兼容。
  • 错误排查信息无效:当前代码打印的error.response.request.params是GET请求的参数,POST请求的实际内容在body里,这个打印信息无法帮你定位问题。

具体解决步骤

  1. 修正请求体结构
    把单条航班数据包裹到flightOffers数组中,这是可用性接口要求的必填结构:

    request_body = {"flightOffers": [flights.data[0]]}
    
  2. 完善错误排查信息
    修改异常处理代码,打印实际发送的请求体和接口返回的错误详情,方便定位问题:

    except ResponseError as error:
        print('请求头: ', error.response.request.headers)
        print('发送的请求体: ', error.response.request.body)
        print('接口返回错误: ', error.response.result)
    
  3. 验证数据完整性
    先打印flights.data[0]的完整内容,对比Amadeus官方文档中可用性接口的请求体示例,确认是否有缺失的关键字段(比如id、itineraries等),如果有缺失需要补充后再发送请求。

修改后的完整代码

from amadeus import Client, ResponseError, Location

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)
    # 构造符合接口要求的请求体
    request_body = {"flightOffers": [flights.data[0]]}
    print("构造的请求体:", request_body)
except ResponseError as error:
    print(error)
    exit()
   
try:
    availability = amadeus.post('/v1/shopping/availability/flight-availabilities', request_body)
    print(availability.result)
except ResponseError as error:
    print('请求头: ', error.response.request.headers)
    print('发送的请求体: ', error.response.request.body)
    print('接口返回错误: ', error.response.result)

内容的提问来源于stack exchange,提问作者Francisco Lamas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 17:39:54