我有以下阅读网页的方法:
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。
答案 0 :(得分:0)
对我来说,它工作得很好,我做到了
System.out.println(readURL());
System.out.println(readURL());
对我来说很好。我唯一想到的就是您可能需要关闭InputStreamReader。 InputStream不需要关闭,javadoc说InputStream.close()不会做任何事情。
编辑:该网站可能不希望被脚本快速连续调用两次(我不知道该网站如何检测到该脚本,但也许可以)。尝试在其他站点上测试脚本。