我正在尝试编写一个VBA代码,它与Google的距离矩阵Api交互,并返回两点之间的距离。问题是,当我尝试使用拉丁字母(如ã)时,它返回一个Invalid Destination错误:
<status>INVALID_REQUEST</status>
<error_message>Invalid request. Invalid 'destinations' parameter.</error_message>
</DistanceMatrixResponse>
我使用的Url是这样的:
https://maps.googleapis.com/maps/api/distancematrix/xml?units=metric&origins=Fortaleza&destinations=São+Paulo&key=" & myAPIK
你们知道怎么解决这个问题吗?
但是当我使用UTF-8代码而不是单词本身时,它会返回我想要的距离:
https://maps.googleapis.com/maps/api/distancematrix/xml?units=metric&origins=Fortaleza&destinations=S%C3%A3o+Paulo&key=" & myAPIK
我也已经尝试在Url中输入语言(pt-BR),但不起作用。
发布于 2020-01-14 22:55:04
你会想看看实际的网页是如何工作的。
在Chrome中打开网页,然后在DevTools (F12)中查看请求流量,它将出现在网络选项卡上。
您必须在侧边栏中找到请求,按XHR进行过滤会有所帮助。
当您找到请求本身时,它将向您显示它是如何编码的。拉丁语不太可能是传输编码参数,而且在通过输入的JavaScript规范化发送请求之前,可能已经过滤了UTF-8。但是,除非您检查DevTools中的API,否则您将无法确定。
此外,如果您只是使用QueryString (也就是url中API参数的一部分)与API进行交互,则可能会发生urlencode。在圣保罗,你可以看到使用this website是如何工作的。在post/get API之前,您可能需要使用urlencode函数‘清理’您的输入。
https://stackoverflow.com/questions/59734117
复制相似问题