gpt4 book ai didi

java - 为线程类设置超时

转载 作者:搜寻专家 更新时间:2023-11-01 08:15:58 25 4
gpt4 key购买 nike

嗨!!

我有一个线程类,想在 10 秒后在里面设置一个超时。

这是怎么做到的?

类:

public class HttpConnection extends Thread{

List<NameValuePair> list;
String url;
Handler handler;

public HttpConnection(List<NameValuePair> params, String url, Handler handler) {

this.list = params;
this.url = url;
this.handler = handler;
}
@Override
public void run() {
try
{
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(url);
String result;
BufferedReader in = null;


httppost.setEntity(new UrlEncodedFormEntity(this.list));



// Execute HTTP Post Request
HttpResponse response = httpclient.execute(httppost);
if(response != null){
in = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));

StringBuffer sb = new StringBuffer("");
String line = "";
String NL = System.getProperty("line.separator");
while ((line = in.readLine()) != null) {
sb.append(line + NL);
}
in.close();
Message msg = Message.obtain();

if ((result = sb.toString()) != null)
{

msg.obj = result;

}
else
{
msg.obj = null;
throw new Exception("ERROR");
}
handler.sendMessage(msg);
}
}
catch (Exception e)
{
Log.e("XXX", e.getMessage());
}

super.run();
}


}

最佳答案

httpclient.getParams().setParameter("http.socket.timeout", 10000);//10 seconds

httpconnection 将在 10 秒后超时,可能会抛出一些异常,在这种情况下您可以结束您的线程

关于java - 为线程类设置超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4946909/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com