我使用下面几行从GAE获取网页,但是需要很长时间,如何提高超时限制?
try
{
URL url=new URL(Url + "?r=" + System.currentTimeMillis());
BufferedReader reader = new BufferedReader(
new InputStreamReader(url.openStream()));
while ((line=reader.readLine())!=null) { Result += line + "\n"; }
reader.close();
}
catch (MalformedURLException e) { ... }
catch (IOException e) { ... }
最佳答案
GAE/J 提供了两个 API:
选项 1。java.net API,您可以在其中使用 URLConnection
(或 HttpURLConnection)类:
URLConnection conn = url.openConnection();
conn.setConnectTimeout(timeoutMs);
conn.setReadTimeout(timeoutMs);
选项 2. GAE Low Level API 提供了一个 FetchOptions#setDeadline
方法来设置获取请求的截止日期。
作为第三种选择,您还可以使用特定的库,例如 HttpClient ,但您必须检查该库是否适用于 GAE/J 的固有限制。
HttpParams httpParams = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParams, connectionTimeoutMillis);
HttpConnectionParams.setSoTimeout(httpParams, socketTimeoutMillis);
HttpClient httpClient = new DefaultHttpClient(httpParams);
关于java - 如何在 Google App Engine 中设置连接超时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7352748/