使用Google Directions API获取路线时遇“无法创建URL”错误求助
解决Google Directions API的「cannot create URL」错误
嘿,碰到这个问题别着急!我帮你梳理几个最可能的原因和排查方向——毕竟你其他功能都正常,大概率是构造API请求URL的时候出了格式问题:
1. 地址参数未做URL编码
这是最常见的诱因!如果你的当前位置(origin)或者目标地址里包含空格、逗号、&这类特殊字符,直接拼接成URL会破坏链接结构,导致无法创建有效的请求地址。
举个反例,这样写肯定会报错:
// 错误示例:直接拼接带空格的地址 const origin = "我的当前位置 带空格"; const url = `https://maps.googleapis.com/maps/api/directions/json?origin=${origin}&destination=目标地址&key=你的API密钥`;
正确的做法是用语言自带的URL编码函数处理地址参数,比如:
- JavaScript用
encodeURIComponent() - Python用
urllib.parse.quote() - iOS用
addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)
修正后的代码示例(JS):
const origin = "我的当前位置 带空格"; const encodedOrigin = encodeURIComponent(origin); const encodedDest = encodeURIComponent("目标地址"); const correctUrl = `https://maps.googleapis.com/maps/api/directions/json?origin=${encodedOrigin}&destination=${encodedDest}&key=你的API密钥`;
2. 缺失必填参数
Google Directions API的请求必须包含三个核心参数:origin、destination、key。如果其中任何一个漏写,或者参数名拼写错误(比如把origin写成orgin),都会导致URL结构无效,触发创建失败的错误。
3. URL拼接时出现语法错误
比如多写了多余的&、?,或者字符串拼接时漏掉了引号、加号这类符号,导致URL变成了混乱的格式。
快速排查技巧
先把你构造好的URL完整打印出来(比如用console.log、print语句),然后直接复制到浏览器地址栏里访问:
- 如果浏览器提示“无效URL”,那就是格式问题,照着上面的点修正就行
- 如果浏览器能返回JSON(哪怕是API报错,比如密钥无效),那说明URL创建是成功的,问题可能出在其他环节
内容的提问来源于stack exchange,提问作者insta catering
相关产品推荐
相关产品推荐

