android DefaultHttpClient 超时
昨天看了一篇HttpClient的设置超时时间,本来以为今天到公司就能把问题给解决了。结果发现DefaultHttpClient没有设置超时时间。然后继续寻找,终于发现了DefaultHttpClient怎么设置超时的了。
其实是在HttpConnectionParams里设置的。我自己写了一个继承DefaultHttpClient的类,以后使用用这个就行了:
/** * 封装超时的HTTPclient * @author wangfeng * @date date 2013-12-20 09:30:26 */public class MyHttpClient extends DefaultHttpClient{ /** * 获取 HttpClient,主要是封装了超时设置 * @param rTimeOut 请求超时 * @param sTimeOut 等待数据超时 * @return */ public DefaultHttpClient getHttpClient(int rTimeOut,int sTimeOut){ BasicHttpParams httpParams = new BasicHttpParams(); HttpConnectionParams.setConnectionTimeout(httpParams, rTimeOut); HttpConnectionParams.setSoTimeout(httpParams, sTimeOut); DefaultHttpClient client = new DefaultHttpClient(httpParams); return client; }}
如何使用:
HttpPost httpRequest =new HttpPost(validateUrl); //Post运作传送变数必须用NameValuePair[]阵列储存 //传参数 服务端获取的方法为request.getParameter("name") List params=new ArrayList(); params.add(new BasicNameValuePair("username",userName)); params.add(new BasicNameValuePair("password",password)); try{ //发出HTTP request httpRequest.setEntity(new UrlEncodedFormEntity(params,HTTP.UTF_8)); //取得HTTP response HttpResponse httpResponse = null; try{ httpResponse=new MyHttpClient().getHttpClient(7000,7000).execute(httpRequest); }catch(Exception e){ isNetError = true; System.out.println("netError"); }
>更多相关文章
首页推荐
佛山市东联科技有限公司一直秉承“一切以用户价值为依归
- 01-11全球最受赞誉公司揭晓:苹果连续九年第一
- 12-09罗伯特·莫里斯:让黑客真正变黑
- 12-09谁闯入了中国网络?揭秘美国绝密黑客小组TA
- 12-09警示:iOS6 惊现“闪退”BUG
- 04-21中国产品数字护照体系加速建设
- 04-21上海口岸汽车出口突破50万辆
- 04-21外媒:微软囤货GPU以发展AI
- 04-21苹果手表MicroLED项目停滞持续波及供应链
- 04-21三部门:到2024年末IPv6活跃用户数达到8亿
相关文章
24小时热门资讯
24小时回复排行
热门推荐
最新资讯
操作系统
黑客防御