“获取时超时”URLFetch GAE / J.

时间:2010-11-08 14:23:10

标签: java google-app-engine

我正在使用XMLReader来读取如下所示的Feed。

URLConnection urlConnection = url.openConnection(); 
XmlReader reader = new XmlReader(urlConnection); 

当调用它时,我会在5秒内收到IOException“Timeout 虽然我试图将超时设置为最大值(10秒),但仍然没有运气,并且在5秒内仍然是IOExeption。

urlConnection.setConnectTimeout(10000); 

(最大值在文档中说明:http://code.google.com/intl/nl-NL/appengine/docs/java/urlfetch/overview.html

似乎Feed的大小太大。当我打电话给较小的饲料时 它工作正常。有没有解决方法或解决方案?我需要能够调用更大的Feed。

2 个答案:

答案 0 :(得分:11)

您应该使用设置阅读截止日期的setReadTimeout方法:

urlConnection.setReadTimeout(10000); //10 Sec

您应该可以在10秒内下载更大的Feed 如果您仍有问题,请尝试使用this不同的方法。

答案 1 :(得分:0)

原因是:

如果没有可用于读取超时时间的数据,则可以抛出异常。来自the doc of Oracle

  

如果读取超时在数据可用于读取之前到期,则从返回的输入流读取时可能抛出SocketTimeoutException。

顺便说一下,#!/usr/bin/swiftReadTimeout不同,读取超时是从主机获取数据的超时,请参阅different connection timeout and read timeout

所以@systempuntoout回答,需要设置读取超时。