gpt4 book ai didi

java - 有时必须等待很长时间,直到 HttpClient.execute() 抛出异常

转载 作者:塔克拉玛干 更新时间:2023-11-01 19:10:30 26 4
gpt4 key购买 nike

我正在使用 HttpClient 连接到我的网络服务。我想实现一个简单的检查应用程序是否可以连接到这个网络服务。如果没有,我希望显示一条特定消息。这就是我尝试实现它的方式:

public static JSONObject getJson(String url) {
StringBuilder builder = new StringBuilder();
HttpClient client = new DefaultHttpClient();
HttpGet get = new HttpGet(url);

try {
HttpResponse response = client.execute(get);
StatusLine statusLine = response.getStatusLine();
int statusCode = statusLine.getStatusCode();
if(statusCode == 200) {
HttpEntity entity = response.getEntity();
InputStream content = entity.getContent();
BufferedReader reader = new BufferedReader(new InputStreamReader(content));
String line;
while((line = reader.readLine()) != null) {
builder.append(line);
}
}
String json = builder.toString();
JSONObject jsonObject = new JSONObject(json);
return jsonObject;
} catch (Exception e) {
showErrorMessage();
}

return null;
}

它有效。如果我没有互联网连接,则在尝试调用 client.execute() 时会抛出异常,但问题是有时它会立即抛出此异常,有时需要 2在它抛出它之前的几分钟。

可能是什么原因?我认为这可能与尝试连接特定时间有关,但我没有更改应用程序中的任何内容,而且这次有所不同。

最佳答案

设置超时参数可以更快的得到异常:

//以毫秒为单位的值

httpget.getParams().setParameter("http.socket.timeout", new Integer(5000));

关于java - 有时必须等待很长时间,直到 HttpClient.execute() 抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16729863/

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