Java 显示WebService URL连接超时的警报消息
我正在调用webservice url,并在Andriod中成功获得响应 这是我的代码:Java 显示WebService URL连接超时的警报消息,java,android,web-services,android-layout,android-intent,Java,Android,Web Services,Android Layout,Android Intent,我正在调用webservice url,并在Andriod中成功获得响应 这是我的代码: protected String doInBackground(String... params) { HttpResponse response = null; // TODO Auto-generated method stub // String url=params[0]; try { final HttpParams httpParams = new Ba
protected String doInBackground(String... params) {
HttpResponse response = null;
// TODO Auto-generated method stub
// String url=params[0];
try {
final HttpParams httpParams = new BasicHttpParams();
HttpClient httpclient = new DefaultHttpClient(httpParams);
HttpConnectionParams.setConnectionTimeout(httpclient.getParams(), 10000);
int timeoutSocket = 60*1000;
HttpConnectionParams.setSoTimeout(httpParams, timeoutSocket);
HttpGet request = new HttpGet("WebServiceURL");
response = httpclient.execute(request);
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
Log.d("Exaception1>>>","Exaception1>>");
} catch (IOException e) {
// TODO Auto-generated catch block
Log.d("Exaception2>>>","Exaception1>>");
e.printStackTrace();
}
statusLine = response.getStatusLine();
if (statusLine.getStatusCode() == HttpStatus.SC_OK) {
ByteArrayOutputStream out = new ByteArrayOutputStream();
try {
response.getEntity().writeTo(out);
out.close();
responseString = out.toString();
// Whatever you wanna do with the response
// Log.d("response", responseString);
} catch (IOException e) {
// TODO Auto-generated catch block
Log.d("Exaception3>>>","Exaception1>>");
e.printStackTrace();
}
} else {
// Close the connection.
try {
response.getEntity().getContent().close();
throw new IOException(statusLine.getReasonPhrase());
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return responseString;
}
但有时WebService URL不会处于活动状态,我的要求是向用户显示连接超时的警报消息,有人能帮忙吗?您可以在doInBackground中捕获ConnectTimeoutException(),以便在异步任务的onPostExecute()中显示警报创建一个具有成功等方法的接口,错误和超时。 将ConnectTimeoutException捕获到异步任务中并调用接口的超时方法。
在asyncTask postexecute()或执行异步任务的位置处理此超时方法。在
doInBackground
中捕获ConnectTimeOutException
,并处理其错误
catch (ConnectTimeoutException e) {
// handle exception
}
当您的响应不为空时显示警报对话框。。。