2011-01-21 61 views
1

如果我直接從我的應用程序引擎servlet發送請求,我會從Google地圖geocoding API返回620個錯誤響應代碼,因此我別無選擇,只能使用代理接收成功的響應。我建立了一個代理服務器,並且通過幾臺計算機進行了測試。現在,我想要做的就是通過我的代理從我的GAE servlet發出一個url請求。如何通過代理從GAE Java發送基本HTTP GET?

我已經試過各種可能的解決方案在那裏,他們沒有工作....

在App Engine運行時支持

-java.net.Proxy心不是... -setting屬性如下:

Properties props = System.getProperties(); props.put(「http.proxyHost」,「proxyhostname」); props.put(「http.proxyPort」,「proxyhostport」);

沒有做任何事情。

在應用程序引擎中通過代理髮送http GET最簡單的方法是什麼?

回答

1

看起來這是不可能的:Google的App Engine API不支持它。使用第三方庫(如Apache的HTTPCore/HTTPClient)或自己編寫它是不可能的,因爲像java.net.Socket這樣的基本網絡類不是whitelisted

不確定爲什麼你不能訪問Google Map API,但如果這確實不起作用,你唯一的選擇就是在代理服務器上編寫一些響應正常HTTP請求的應用程序,然後將它們轉發給Google Maps 。

更新:用Google搜索了一下,似乎是一個well-known problem:地圖API,每天可以和IP 2500所請求的限制,這就是極限迅速達到GAE,你與許多其他應用程序共享IP。您唯一可以做的就是將請求移動到客戶端,使用具有自己IP的代理或使用其他服務。

+0

我已經抱怨App Engine組關於未在地圖服務器上列入白名單的GAE ips處。似乎沒有人會給狗屎。如果不使用一些令人難以置信的迂迴技術,從GAE地圖api發出一個簡單的http請求是否真的不可能? – 2011-01-21 17:02:55