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

使用GAS向Avis测试环境发送GET请求获取费率失败求助

排查API请求失败的低级错误

以下是几个可能导致"Bad request"的明显问题,以及修正方案:

1. URL格式不完整

你当前的URL缺少https://协议头,且443端口在HTTPS请求中属于默认端口,可以省略。正确的URL应为:

https://stage.abgapiservices.com/cars/catalog/v1/vehicles/rates

UrlFetchApp 要求完整的URL协议,否则会无法正确解析请求地址。

2. GET请求参数放置错误

你将age、brand等查询参数直接放在了options的顶层,这是错误的。GET请求的查询参数需要放在options的params属性中,UrlFetchApp会自动将其拼接为URL的查询字符串;或者手动拼接到URL末尾。

3. 冗余的Header参数

client_id通常不需要放在请求Header中(OAuth2流程中获取token时已使用),除非API文档明确要求。多余的Header参数可能会导致请求格式不符合要求,建议移除。

4. 位置参数可能无效

pickup_location和dropoff_location使用的是名称"castleford",但多数租车API要求传入门店代码而非名称,你可以从之前成功拉取的门店列表中提取对应门店的代码替换尝试。

修正后的代码示例

// 成功获取OAuth令牌
var authToken = getAccessToken('','');

// 修正后的完整URL
var url='https://stage.abgapiservices.com/cars/catalog/v1/vehicles/rates';
var bOpt=true; // 改为true,以便获取完整错误信息

var options = {
  'headers': {'Authorization': 'Bearer ' + authToken},
  'method': 'GET',
  'params': {
    'age': '32',
    'brand': 'Avis',
    'country_code': 'GB',
    'dropoff_date': '2020-10-20T12:00Z',
    'dropoff_location': '替换为门店代码', // 从门店列表获取对应代码
    'pickup_date': '2020-10-13T12:00Z',
    'pickup_location': '替换为门店代码',
    'rate_code': 'cai',
    'vehicle_class_code': 'A'
  },
  'muteHttpExceptions': bOpt
};

// 发送请求
var response = UrlFetchApp.fetch(url,options);
// 打印响应状态和内容,便于排查
console.log("Response Code: " + response.getResponseCode());
console.log("Response Content: " + response.getContentText());

// 解析返回的费率数据
var rates = JSON.parse(response.getContentText());

额外排查建议

  • 开启muteHttpExceptions: true后,查看完整的错误响应内容,API通常会返回具体的错误原因(比如某个参数无效、格式错误)。
  • 确认rate_code是否适用于测试环境:你从生产网站获取的rate_code可能仅在生产环境生效,测试环境可能需要使用文档中指定的测试专用代码。
  • 核对参数名的大小写和拼写:部分API对参数名的大小写敏感,确保所有参数名与ABG API文档完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 04:40:43