我正在使用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。
答案 0 :(得分:11)
您应该使用设置阅读截止日期的setReadTimeout
方法:
urlConnection.setReadTimeout(10000); //10 Sec
您应该可以在10秒内下载更大的Feed 如果您仍有问题,请尝试使用this不同的方法。
答案 1 :(得分:0)
原因是:
如果没有可用于读取超时时间的数据,则可以抛出异常。来自the doc of Oracle
如果读取超时在数据可用于读取之前到期,则从返回的输入流读取时可能抛出SocketTimeoutException。
顺便说一下,#!/usr/bin/swift
与ReadTimeout
不同,读取超时是从主机获取数据的超时,请参阅different connection timeout and read timeout
所以@systempuntoout回答,需要设置读取超时。