我创建了以下用于检查连接状态的函数:
专用无效检查连接状态(){
HttpClient HttpClient=新的DefaultHttpClient();
试一试{
字符串url=”http://xxx.xxx.xxx.xxx:8000/GaitLink/"
+strSessionString+“/ConnectionStatus”;
Log.d(“火卫一”,“执行get”+url);
HttpGet方法=新的HttpGet(新的URI(url));
HttpResponse response=httpClient.execute(方法);
if(响应!=null){
字符串结果=getResponse(response.getEntity());
...
当我关闭服务器进行测试时,执行在第行等待了很长时间
HttpResponse response=httpClient.execute(方法);
有人知道如何设置超时以避免等待太久吗
谢谢
在我的示例中,设置了两个超时。连接超时抛出java.net.SocketTimeoutException:Socket未连接,套接字超时java.net.SocketTimeoutException:操作超时
HttpGet-HttpGet=新的HttpGet(url);
HttpParams httpParameters=新的BasicHttpParams();
//以毫秒为单位设置超时,直到建立连接。
//默认值为零,表示不使用超时。
int timeoutConnection=3000;
HttpConnectionParams.setConnectionTimeout(httpParameters,timeoutConnection);
//设置默认套接字超时(SO\U超时)
//以毫秒为单位,这是等待数据的超时。
int timeoutSocket=5000;
HttpConnectionParams.setSoTimeout(httpParameters,timeoutSocket);
DefaultHttpClient httpClient=新的DefaultHttpClient(httpParameters);
HttpResponse response=httpClient.execute(httpGet);
如果要设置任何现有HTTPClient(例如DefaultHttpClient或AndroidHttpClient)的参数,可以使用函数setParams()
httpClient.setParams(httpParameters);