我正在使用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 分钟才能引发异常。
可能是什么原因?我认为这可能与尝试连接特定时间有关,但我没有更改应用程序中的任何内容,而且这个时间无论如何都不同。