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

调用Kiwi API时URL拼接异常求助:endpoint未追加到BaseUrl

问题排查与解决方案

一、URL拼接问题修复

你的BaseUrl是https://api.tequila.kiwi.com/v2(末尾无斜杠),而endpoint是/search(开头带斜杠),很多HTTP客户端在拼接时会忽略BaseUrl的末尾路径,导致生成错误的URL(比如https://api.tequila.kiwi.com/search)。解决方式有两种:

  1. 调整BaseUrl和endpoint格式:

    • 把BaseUrl改为带末尾斜杠:"BaseUrl": "https://api.tequila.kiwi.com/v2/"
    • 同时将endpoint改为"search"(去掉开头斜杠),这样拼接后会得到正确的https://api.tequila.kiwi.com/v2/search
  2. 用Uri类安全拼接:
    在你的_httpService.Get方法内部,不要手动拼接字符串,改用Uri类处理:

    var baseUri = new Uri(_serviceConfig.BaseUrl);
    var requestUri = new Uri(baseUri, endPoint);
    

    这种方式会自动处理斜杠的重复或缺失问题,确保URL格式正确。

二、参数错误导致API返回Null

你的请求参数存在多个格式和命名错误,这会导致Kiwi API无法正确解析请求,进而返回无效响应(被你的ApiResult处理为null):

1. 参数名空格问题

  • "date_to "(末尾带空格)→ 改为"date_to"
  • " ret_to_Diff_City"(开头带空格)→ 改为"ret_to_Diff_City"(后续还要修正大小写)

2. 参数名大小写不符合API规范

Kiwi API使用蛇形小写命名参数,你的部分参数是驼峰命名,需要修正:

错误参数名正确参数名
max_Fly_Durationmax_fly_duration
ret_From_Diff_Cityret_from_diff_city
ret_to_Diff_Cityret_to_diff_city
one_For_Cityone_for_city
selected_Cabinsselected_cabins
mix_With_Cabinsmix_with_cabins
only_Working_Daysonly_working_days
onlyWeekEndonly_weekend
max_Stopoversmax_stopovers
vehicle_Typevehicle_type

3. 修正后的参数示例

parameters: new Dictionary<string, string>
{
    { "fly_from", "FRA"},
    { "fly_to", "PRG" },
    { "date_from", "05/10/2023" },
    { "date_to", "07/10/2023" },
    { "return_from", "08/10/2023"},
    { "return_to", "10/10/2023" },
    { "max_fly_duration", "20" },
    { "ret_from_diff_city", "true"},
    { "ret_to_diff_city", "true"},
    { "one_for_city", "0" },
    { "one_per_date", "0"},
    { "adults", "2" },
    { "children", "2" },
    { "selected_cabins", "C" },
    { "mix_with_cabins", "M" },
    { "adult_hold_bag", "1,0" },
    { "adult_hand_bag", "1,1" },
    { "child_hold_bag", "2,1" },
    { "child_hand_bag", "1,0" },
    { "only_working_days", "false" },
    { "only_weekend", "false" },
    { "partner_market", "us" },
    { "max_stopovers", "2" },
    { "max_sector_stopovers", "2" },
    { "vehicle_type", "aircraft"},
    { "limit", "500"},
}

三、调试建议

  1. 开启_httpService的日志功能,打印实际发送的完整URL和请求头,对比Kiwi APP生成的URL,确认参数和路径是否一致。
  2. 检查API响应状态码:如果返回400(参数错误)、401(API Key无效)等错误,说明请求本身有问题,你的ApiResult可能将错误响应处理为null,需要在代码中捕获并输出响应内容排查。

内容的提问来源于stack exchange,提问作者Umer Iqbal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 14:10:32