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