我正在访问Google API以获取一些地理位置。
端点看起来像这样:
https://maps.googleapis.com/maps/api/geocode/xml?address=84100+ORANGE+FR&key=apikey
如果我在Chrome浏览器中打开此链接,API将返回一些数据。
如果我使用file_gets_content或simplexml_load_file访问它,它将返回“零结果”。
经过一些测试,我发现我可以在Chrome上看到结果,因为浏览器本身设置为意大利语。如果我将其设置为英语,它将返回“零结果”,与PHP相同。
如何在PHP中获得与Chrome相同的结果?
我实际上在这里找到了问题。
基本上,当我将Chrome设置为意大利语时,它可能重新排列了参数的顺序,返回了不同的结果。
实际的问题在于地址参数,其中城市在邮编之前。
另外,添加参数&language=it可能出于同样的原因起作用。
因此,正确的URL应该是
https://maps.googleapis.com/maps/api/geocode/xml?address=ORANGE+84100+FR&key=apikey
我花了太多时间来调试这个问题。