1

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

我已经尝试了所有可能的解决方案,但都没有工作......

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

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

什么都没做。

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

4

1 回答 1

1

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

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

更新:谷歌了一下,这似乎是一个众所周知的问题:Map API 有每天 2500 个请求和 IP 的限制,而在 GAE 上,您与许多其他应用程序共享您的 IP 很快就会达到这个限制。您唯一能做的就是将请求移动到客户端,使用一些具有自己 IP 的代理,或者使用不同的服务。

于 2011-01-21T09:14:47.500 回答