阅读网页第二次总是超时

时间:2018-07-11 16:01:14

标签: java url inputstreamreader

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

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。

1 个答案:

答案 0 :(得分:0)

对我来说,它工作得很好,我做到了

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

对我来说很好。我唯一想到的就是您可能需要关闭InputStreamReader。 InputStream不需要关闭,javadoc说InputStream.close()不会做任何事情。

编辑:该网站可能不希望被脚本快速连续调用两次(我不知道该网站如何检测到该脚本,但也许可以)。尝试在其他站点上测试脚本。