【问题标题】:Why does this API no longer work when called through a php proxy? How do I fix this?为什么通过 php 代理调用此 API 时不再起作用?我该如何解决?
【发布时间】:2012-06-30 10:51:09
【问题描述】:

这里是 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)

【问题讨论】:

  • 了解错误消息的内容会非常有帮助。
  • “您的客户发出了格式错误或非法的请求。这就是我们所知道的一切。”,但取决于我调用的站点/API 方法
  • 您是否阅读并遵循页面上描述此代理使用的 http 实用程序类的注释 wrt urlencoding? troywolf.com/articles/php/class_http 。格式错误的 URL 错误可能指向该方向
  • 我想出了如何解决它。在将其附加到代理之前,我需要在 url 上调用 encodeURIComponent。
  • @fvu 啊,我在这里没看到。将此作为您的答案发布,我很乐意接受。

标签: php ajax json proxy sencha-touch-2


【解决方案1】:

那个proxy class使用了同一个作者的http class。它的文档规定用户(你)负责urlencoding请求的IURL。

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 那是他们网页上的说明,也是我在你回答前 5 分钟发表的评论......
    猜你喜欢
    • 2019-05-26
    • 1970-01-01
    • 2013-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-14
    • 2023-02-02
    • 1970-01-01
    相关资源
    最近更新 更多