我试图让一些YQL与Web服务一起工作。第一个代码段在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控制台内,但我认为控制台是一个让它运行的好地方。
答案 0 :(得分:2)
您在API上获得302重定向。 http://www.gis.leg.mn/mapserver/districtsxml/geocode.php?location=Mankato%20MN
上卷曲了curl -v -L http://www.gis.leg.mn/mapserver/districtsxml/geocode.php?location=MANKATO%20MN
完成卷曲后,请检查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
最后注意地址= 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问题。
`