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

使用Google Apps Script调用Vehicle Enquiry Service API遇注册号格式错误

解决Vehicle Enquiry Service API调用400错误(ENQ108)的问题

问题根源分析

你遇到的ENQ108错误是车牌格式无效,结合代码来看,主要存在三个问题:

  • 车牌字符串末尾带有多余空格:"AA19AAA "
  • Google Apps Script的UrlFetchApp不识别data参数,需用payload且转为JSON字符串
  • 请求头配置重复,options里同时设置了headers和单独的x-api-key,造成冗余冲突

修复后的代码

function myFunction() {
  const url = "https://driver-vehicle-licensing.api.gov.uk/vehicle-enquiry/v1/vehicles";
  const apiKey = "你的API密钥";
  // 移除车牌首尾空格,确保格式合规
  const payload = JSON.stringify({ "registrationNumber": "AA19AAA" });
  
  const options = {
    method: 'POST',
    headers: {
      "x-api-key": apiKey,
      'Content-Type': 'application/json'
    },
    payload: payload,
    // 开启后可捕获非200状态码的响应,便于调试
    muteHttpExceptions: true
  };
  
  try {
    const response = UrlFetchApp.fetch(url, options);
    Logger.log("响应状态码:" + response.getResponseCode());
    Logger.log("响应内容:" + response.getContentText());
  } catch (e) {
    Logger.log("请求异常:" + e.toString());
  }
}

关键修复点说明

  • 清理车牌格式:API对车牌格式要求严格,必须移除首尾所有空白字符
  • 正确配置请求体:Google Apps Script中POST请求的请求体必须放在payload字段,且需通过JSON.stringify()将对象转为JSON字符串,否则API无法解析格式
  • 统一请求头配置:将x-api-key和Content-Type统一放在headers对象内,避免重复配置导致的冲突
  • 添加异常处理:通过try-catch和muteHttpExceptions可以捕获并打印详细错误信息,方便排查问题

额外调试建议

如果仍报错,可以:

  • 先切换到UAT测试URL验证请求格式,测试环境的错误反馈更友好
  • 打印最终发送的payload和headers内容,确认是否完全符合API文档要求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 06:40:52