【问题标题】:How to send basic HTTP GET via proxy from GAE Java?如何通过 GAE Java 的代理发送基本的 HTTP GET?
【发布时间】:2011-06-13 00:30:31
【问题描述】:

如果我直接从我的应用程序引擎 servlet 发送请求,我会从谷歌地图地理编码 api 返回 620 错​​误响应代码,所以我别无选择,只能使用代理来接收成功的响应。我设置了一个代理服务器,并在几台计算机上对其进行了测试。现在,我要做的就是通过我的代理从我的 GAE servlet 发出一个 url 请求。

我已经尝试了所有可能的解决方案,但没有一个可行....

-java.net.Proxy 在应用引擎运行时不受支持... - 设置属性如下:

属性 props = System.getProperties(); props.put("http.proxyHost", "proxyhostname"); props.put("http.proxyPort", "proxyhostport");

什么都没做。

通过应用引擎中的代理发送 http GET 最简单的方法是什么?

【问题讨论】:

    标签: java google-app-engine google-maps proxy httpconnection


    【解决方案1】:

    这似乎是不可能的:Google 的 App Engine API 不支持它。使用第三方库(如 Apache 的 HTTPCore/HTTPClient)或自己编写是不可能的,因为像 java.net.Socket 这样的基本网络类不是whitelisted

    不知道为什么您不能访问 Google Map API,但如果这确实不起作用,您唯一的选择是在您的代理服务器上编写一些应用程序来响应正常的 HTTP 请求,然后将它们转发到 Google Maps。

    更新: 用 Google 搜索了一下,好像是 well-known problem:Map API 每天有 2500 个请求和 IP 的限制,而在 GAE 上,您分享您的IP 与许多其他应用程序。你唯一能做的就是将请求转移到客户端,使用一些具有自己 IP 的代理,或者使用不同的服务。

    【讨论】:

    • 我在 App Engine 群组上到处抱怨 GAE ip 没有在地图服务器上列入白名单。似乎没有人在乎。如果不使用一些令人难以置信的迂回技术,真的不可能从 GAE 向 maps api 发出简单的 http 请求吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-25
    • 2017-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-03
    相关资源
    最近更新 更多