第二次阅读网页总是超时



我有以下读取网页的方法:

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。

对我来说,它运行得很好,我只是做了

System.out.println(readURL());
System.out.println(readURL());

这对我来说很好。我唯一能想到的是,你可能需要关闭InputStreamReader。InputStream不需要关闭,javadoc说InputStream.close((什么都不做。

编辑:也许网站不喜欢被脚本连续调用两次(我不知道网站是如何检测到的,但也许这是可能的(。请尝试使用其他站点测试脚本。

最新更新