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

Amadeus API错误32171(必填数据缺失):PHP多城市航班搜索问题求助

多城市航班搜索Amadeus API报错(32171: MANDATORY DATA MISSING)排查

我正在开发基于Amadeus API的多城市航班搜索应用,发送请求时收到错误码32171,提示“MANDATORY DATA MISSING”。以下是我的PHP代码:

$str=' 

{
"originDestinations": [
    {
        "id": "1",
        "originLocationCode": "BCN",
        "destinationLocationCode": "MAD",
        "departureDateTimeRange": {
            "date": "2023-07-09",
            "time": "10:00:00"
        },
        "arrivalDateTimeRange":{
        "date": "2023-07-10",
         "time": "10:00:00" 
        }
    },
            {
        "id": "2",
        "originLocationCode": "MAD",
        "destinationLocationCode": "ATH",
        "departureDateTimeRange": {
            "date": "2023-07-11",
            "time": "10:00:00"
        }
        ,
        "arrivalDateTimeRange":{
        "date": "2023-07-12",
         "time": "10:00:00" 
        }
    }
],
"travelers": [
    {
        "id": "1",
        "travelerType": "ADULT",
        "fareOptions": [
            "STANDARD"
        ]
    },
    {
            "id": "2",
        "travelerType": "HELD_INFANT",
        "associatedAdultId": "1",
        "fareOptions": [
            "STANDARD"
         ]
     }
  ],
    "sources": [
    "GDS"
    ]
  }



';

$arr=json_decode($str,true);



$fanal_arrr=array(

'getFlightOffersBody'=>$arr,

'X-HTTP-Method-Override'=>'GET'

 );

API返回错误:

"code":32171,"title":"MANDATORY DATA MISSING"

问题原因及修正方案

1. 错误的航段时间参数

Amadeus多城市航班搜索API中,每个航段仅需指定departureDateTimeRange,不需要arrivalDateTimeRange。后者仅适用于单程/往返行程的返程段,多城市模式下额外添加该字段会导致API参数解析异常,误判为缺少必填项。

2. 请求方法与参数结构不匹配

你设置了X-HTTP-Method-Override: GET,同时用getFlightOffersBody包裹请求体,但Amadeus的Flight Offers Search API有两种调用模式:

  • GET模式:用查询参数传递所有条件,不支持复杂的多城市结构
  • POST模式:用JSON请求体传递参数,是多城市搜索的正确方式

因此需要移除X-HTTP-Method-Override头,直接以POST方式发送正确的JSON体。

修正后的代码示例

$str = '{
  "originDestinations": [
    {
      "id": "1",
      "originLocationCode": "BCN",
      "destinationLocationCode": "MAD",
      "departureDateTimeRange": {
        "date": "2023-07-09",
        "time": "10:00:00"
      }
    },
    {
      "id": "2",
      "originLocationCode": "MAD",
      "destinationLocationCode": "ATH",
      "departureDateTimeRange": {
        "date": "2023-07-11",
        "time": "10:00:00"
      }
    }
  ],
  "travelers": [
    {
      "id": "1",
      "travelerType": "ADULT",
      "fareOptions": ["STANDARD"]
    },
    {
      "id": "2",
      "travelerType": "HELD_INFANT",
      "associatedAdultId": "1",
      "fareOptions": ["STANDARD"]
    }
  ],
  "sources": ["GDS"]
}';

$arr = json_decode($str, true);

// 以POST方式发送请求(示例用curl)
$ch = curl_init('https://test.api.amadeus.com/v2/shopping/flight-offers');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
  'Authorization: Bearer YOUR_ACCESS_TOKEN', // 替换为你的有效token
  'Content-Type: application/json'
]);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($arr));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);

// 处理响应
var_dump(json_decode($response, true));

内容的提问来源于stack exchange,提问作者abolfazl adibdoost

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 12:43:20