android DefaultHttpClient 超时

浏览:
字体:
发布时间:2013-12-22 23:48:39
来源:东方联盟

昨天看了一篇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");			}


>更多相关文章
24小时热门资讯
24小时回复排行
资讯 | QQ | 安全 | 编程 | 数据库 | 系统 | 网络 | 考试 | 站长 | 下载 | 关于东盟 | 安全雇佣 | 搞笑视频大全 | 微信学院 |
关于我们 | 联系我们 | 广告服务 | 人才招聘 | 服务条款 | 免责申明 | 帮助中心 | 作品发布 | 网站地图 | 技术培训
Copyright © 2007 - 2018 Vm888.Com. All Rights Reserved
东方联盟 版权所有