为什么通过 php 代理调用此 API 不再工作?我该如何解决这个问题


Why does this API no longer work when called through a php proxy? How do I fix this?

这是API:http://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&sensor=true

如果您转到 url,则可以看到 JSON 对象

我从这里找到了一个简单的PHP代理的源代码:http://www.daniweb.com/web-development/php/code/216729/php-proxy-solution-for-cross-domain-ajax-scripting

我可以使用代理访问站点,但是当我通过代理调用 API 时,出现错误。 有谁知道为什么会这样,以及如何解决它?

对某些其他站点的调用也会发生此错误。只是以谷歌为例。

(www.mydomain.com/proxy.php?proxy_url=http://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&sensor=true)

该代理类使用同一作者的 http 类。 其文档规定,用户(您)负责对请求的 IURL 进行编码。

我想出了如何解决它。我需要在将 url 附加到代理之前在 url 上调用 encodeURIComponent。