gpt4 book ai didi

javascript - 如何对 YQL url 中的空格进行编码?

转载 作者:行者123 更新时间:2023-12-02 19:21:24 24 4
gpt4 key购买 nike

我正在尝试让一些 YQL 与网络服务一起使用。第一个代码片段适用于 YQL 控制台 ( http://developer.yahoo.com/yql/console/ )

select * from xml where url="http://www.gis.leg.mn/mapserver/districtsxml/geocode.php?location=Mankato"

当我尝试使用空格添加更复杂的地址时,控制台会给出有关连接失败的错误:

select * from xml where url="http://www.gis.leg.mn/mapserver/districtsxml/geocode.php?location=Mankato%20MN"

如果我直接访问第二个网址,则可以正常工作:http://www.gis.leg.mn/mapserver/districtsxml/geocode.php?location=Mankato%20MN

关于如何编码第二个 yql 查询有什么想法吗?最终我想通过 url 调用 yql,而不仅仅是在 yql 控制台内部,但我认为控制台将是让它工作的好地方。

最佳答案

您在 API 上收到 302 重定向。 http://www.gis.leg.mn/mapserver/districtsxml/geocode.php?location=Mankato%20MN 上有 curl 吗?您可以尝试一下curl -v -L http ://www.gis.leg.mn/mapserver/districtsxml/geocode.php?location=MANKATO%20MN

完成 curl 后,检查 302 之后的部分。注意以下事项:

GET /cgi-bin/mapserv?mode=nquery&map=/web/gis/mapserver/districtsxml/demo.map&scale=10000&mapxy=-93.9993996+44.1635775&layer=location&map_location_feature=new&map_location_feature_points=-93.9993996+44.1635775&source=address&address=MANKATO+MN

注意到最后的address=MANKATO+MN了吗?由于某种原因,托管 API 的服务器会将空格转换为加号(我不知道为什么)。

无论如何,如果您发出查询 select * from xml where url="http://www.gis.leg.mn/mapserver/districtsxml/geocode.php?location=MANKATO%2BMN" (我已经在 Mankato+MN 中对 + 进行了编码)那么它应该可以工作。我亲自验证过。尝试一下并告诉我。

最后一点。这看起来不像是 YQL 问题。查看YQL request not working when using URL为什么我怀疑这不是 YQL 问题。

`

关于javascript - 如何对 YQL url 中的空格进行编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12499809/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com