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

我正在使用XMLReader来简单地读取如下所示的提要。

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

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

 urlConnection.setConnectTimeout(10000); 

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

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

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

 urlConnection.setReadTimeout(10000); //10 Sec 

您应该能够在10秒内下载更大的Feed。
如果你仍然有问题,试着摆弄这种不同的方法。

原因是:

如果没有可用于读取超时时间的数据,则可以抛出exception。 来自Oracle的文档

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

顺便说一句, ReadTimeoutConnectTimeout不同,读取超时是从主机获取数据的超时,请参阅不同的连接超时和读取超时

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