的功能很簡單:如何編寫URLFetch以避免超時異常? GAE/J + Facebook應用程序
public static String readURL(URL url, HTTPMethod method) throws IOException {
FetchOptions opt = FetchOptions.Builder.doNotValidateCertificate();
HTTPRequest request = new HTTPRequest (url, method, opt);
URLFetchService service = URLFetchServiceFactory.getURLFetchService();
HTTPResponse response = service.fetch(request);
byte[] content = response.getContent();
return new String(content);
}
的問題是,有時我得到一個異常:
java.lang.RuntimeException: java.io.IOException: Timeout while fetching: https://graph.facebook.com...
我想這樣做是爲了在功能一些while()循環或類似的,所以它一直在嘗試,直到響應在那裏。你認爲最好的方法是什麼?我是否正朝着正確的方向前進?還是你會建議完全不同的東西?正如其他一些職位所建議的那樣,將超時時間增加到10秒應該可以避免大部分問題,但不能根除問題。
謝謝。
PS 1: 線FetchOptions opt = FetchOptions.Builder.doNotValidateCertificate();
是需要避免的另一個問題,
HTTP ERROR 500
Problem accessing /auth. Reason:
javax.net.ssl.SSLHandshakeException: Could not verify SSL certificate for: https://graph.facebook.com/oauth/access_token?...
PS 2: 這不是像在這個線程的問題:GoogleAppEngine urlfetch timeout exception因爲我獲取了Facebook服務器,不是我自己的服務器。也不是像"Timeout while fetching" URLFetch GAE/J,因爲這個問題是不是一個非常大的飼料,而是一個無響應的服務器(特別是響應緩慢的通過測試用戶請求時)
關於Facebook的SSL問題,如果它是你在最新的1.4.2中打的東西。下載SDK(手動不使用eclipse)請參閱http://code.google.com/p/googleappengine/issues/detail?id=4603 – maximbr 2011-03-19 16:49:06
我知道這是1.4.2中的一個錯誤,我正在使用它作爲解決方法。我不知道它已經解決了。謝謝你的提示。 – Aleadam 2011-03-19 17:21:38