我正在读取由web服务器动态呈现的远程文件(xml)。有时Web服务器需要时间来呈现远程文件。 有时netowrk存在问题,远程网址无法访问 我使用以下代码:
URL url = new URL(myurl);
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
String inputLine;
String strOutput = "";
System.out.println("start now");
//my code hangs after priting start now sometime.
//i think in.ready blocks the code flow.
if(in.ready() ){
while ((inputLine = in.readLine()) != null) {
strOutput = strOutput + inputLine;
}
}
如果输入流没有准备好,我希望我的代码继续阻止。我怎么处理它?</ p>
如何确保我的代码流不会被无限制地阻止?
答案 0 :(得分:1)
您可以在网址连接上设置超时。请参阅javadocs。
但是你必须稍微改变你的流:
URLConnection con = url.openConnection();
con.setReadTimeout(timeout);
InputStream in = con.getInputStream();