【发布时间】:2018-07-11 16:01:13
【问题描述】:
我有以下方法来阅读网页:
public String readURL() {
String response="";
try {
URL url=new URL(urlString);
BufferedReader br=new BufferedReader(new InputStreamReader(url.openStream()));
response=br.readLine();
br.close();
} catch (Exception e) {
JOptionPane.showMessageDialog(null,"Unable to connect to server: "+e.toString(),windowTitle,JOptionPane.ERROR_MESSAGE);
System.exit(-1);
}
return(response);
}
当我第一次调用这个方法时,它总是有效的。但是,当我第二次调用它时(在同一次运行中), InputStreamReader 超时。 urlString 两次都是一样的。我可以重新运行应用程序并且第一次调用成功。我可以在浏览器中连续多次使用该 urlString 并且它总是成功。似乎有些事情我没有关闭,或者我需要做一些清理工作。为了进行后续调用,缺少什么方法? TIA。
【问题讨论】:
-
也许
close也会关闭System.in -
小问题:我会在 finally 块中
close(),或者更好的是,使用 try-with-resources
标签: java url inputstreamreader