我编写了一个应用程序,它每小时左右访问一个网站以获取数据。在大多数情况下,这非常有效。但是,我最近遇到了重复的问题,即应用程序突然停止更新数据。换句话说,该应用程序运行良好,可以访问网站并提取数据……然后突然就不行了。我终于找到了“java.net.UnknownHostException:www.mysite.com”。
问题是......设备(这是在设备上,而不是模拟器)仍然可以访问互联网,所以这不是网络访问问题。另一件事是,这永远不会自行清除……它会在 DAYS 内不断出现此错误。到目前为止,我发现的唯一解决方法是重启手机。
不幸的是,这在我的手机上从未发生过,所以我无法自己测试。我只是从其他人那里听说的。
是否有某种方法可以“重新启动”解析域名的电话网络接口部分,如果这是问题所在?
这是我用来访问该网站的代码:
try {
HttpParams httpParams = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParams, HTTP_TIMEOUT);
HttpConnectionParams.setSoTimeout(httpParams, HTTP_TIMEOUT);
DefaultHttpClient httpClient = new DefaultHttpClient(httpParams);
HttpPost httpPost = new HttpPost(url);
HttpResponse httpResponse = httpClient.execute(httpPost);
HttpEntity entity = httpResponse.getEntity();
if (entity == null) {
throw new Exception("Entity was null");
}
line = EntityUtils.toString(entity);
}
catch (ClientProtocolException cpe) {
throw new NetworkNotAvailableException("A client protocol exception occurred: " + cpe.getLocalizedMessage());
}
...and more catches below this