的功能很简单:如何编写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