Java 用计时器强制断线停止

Java 用计时器强制断线停止,java,timer,Java,Timer,我正在查询服务器(我没有编写)以获取网站的HTML,但是服务器有一些错误,有时不返回答案。我的方法中有一个陷阱,但它需要几分钟的时间来启动,同时我的代码陷入了困境。错误发生在rd=new BufferedReader(new Input…行)。如果服务器在一两秒钟内没有返回答案,有没有办法使用计时器强制我的代码退出方法?代码每运行几百次,我就有一个错误 public String getHTML(String urlToRead) { URL url; HttpURLConnec

我正在查询服务器(我没有编写)以获取网站的HTML,但是服务器有一些错误,有时不返回答案。我的方法中有一个陷阱,但它需要几分钟的时间来启动,同时我的代码陷入了困境。错误发生在rd=new BufferedReader(new Input…行)。如果服务器在一两秒钟内没有返回答案,有没有办法使用计时器强制我的代码退出方法?代码每运行几百次,我就有一个错误

public String getHTML(String urlToRead) {
    URL url;
    HttpURLConnection conn;
    BufferedReader rd;
    String line;
    String result = "";
    try {
        url = new URL(urlToRead);
        conn = (HttpURLConnection) url.openConnection();
        conn.setRequestMethod("GET");
        rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
        while ((line = rd.readLine()) != null) {
            result += line;
        }
        rd.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
    return result;
}

使用现有的超时方法和

如果超时,将引发
java.net.SocketTimeoutException



不相关,但考虑不捕获<代码>异常< /代码> .< /p>

使用现有的超时方法,和./P> 如果超时,将引发

java.net.SocketTimeoutException



不相关,但考虑不捕获<代码>异常< /代码> .< /p> < p>可以将代码放在一个不同的线程中。启动线程后,执行代码>睡眠>代码>,直到线程中的一个标志被设置,或者直到X秒通过。然后继续主程序。

您可以将代码放在一个不同的线程中。执行
sleep
,直到线程中设置了一个标志,或者直到x秒过去。然后继续执行主程序