问题描述
- 从 android 应用程序响应时间发送 php 查询到服务器
-
我想在数据库中放入一个entry。用的下面的代码:String url = String.format("http://xxxxxxx/xxx/index.php?home=yes&pid=%s", pid); // Create a new HttpClient and Post Header HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost(url); try { ResponseHandler<String> responseHandler = new BasicResponseHandler(); String response = httpclient.execute(httppost, responseHandler); Log.e("abc", response); return response; } catch (ClientProtocolException es) { Log.e("x" , es.getMessage()); return ""; } catch (IOException e) { Log.e("aasx" , e.getMessage()); return ""; }
这段代码能正常运行,现在当有网络连接的时候,代码就会困在
httpclient.execute(httppost, responseHandler);
大约俩分钟。有什么方法可以实现检查几秒钟后,如果没有反应的就会就
catch the exceptions
?
解决方案
HttpParams params =new BasicHttpParams();
// 设置一些基本参数
HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
HttpProtocolParams.setContentCharset(params,CHARSET);
HttpProtocolParams.setUseExpectContinue(params, true);
/* 从连接池中取连接的超时时间 */
ConnManagerParams.setTimeout(params, 1000);
/* 连接超时 */
HttpConnectionParams.setConnectionTimeout(params, 2000);
/* 请求超时 */
HttpConnectionParams.setSoTimeout(params, 4000);
// 设置我们的HttpClient支持HTTP和HTTPS两种模式
SchemeRegistry schReg =new SchemeRegistry();
schReg.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));
schReg.register(new Scheme("https", SSLSocketFactory
.getSocketFactory(), 443));
// 使用线程安全的连接管理来创建HttpClient
ClientConnectionManager conMgr =new ThreadSafeClientConnManager(params, schReg);
HttpClient httpclient=new DefaultHttpClient(conMgr, params);
时间: 2024-10-30 23:10:24