CustomerHttpClient单例遇到的超时问题
来源:互联网 发布:淘宝店 转让 编辑:程序博客网 时间:2024/04/29 22:34
以前的项目中一直使用网上的一个用单例写的httpclient类,如下
public static synchronized HttpClient getHttpClient() {if (null == customerHttpClient) {HttpParams params = new BasicHttpParams();// 设置一些基本参数HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);HttpProtocolParams.setContentCharset(params, CHARSET);HttpProtocolParams.setUseExpectContinue(params, true);HttpProtocolParams.setUserAgent(params,"Mozilla/5.0(Linux;U;Android 2.2.1;en-us;Nexus One Build.FRG83) "+ "AppleWebKit/553.1(KHTML,like Gecko) Version/4.0 Mobile Safari/533.1");// 超时设置/* 从连接池中取连接的超时时间 */ConnManagerParams.setTimeout(params, 1000); //1/* 连接超时 */HttpConnectionParams.setConnectionTimeout(params, 5000);//2,5/* 请求超时 */HttpConnectionParams.setSoTimeout(params, 5000);//4,5 // 设置我们的HttpClient支持HTTP和HTTPS两种模式SchemeRegistry schReg = new SchemeRegistry();schReg.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));schReg.register(new Scheme("https", SSLSocketFactory.getSocketFactory(), 443));// 使用线程安全的连接管理来创建HttpClientClientConnectionManager conMgr = new ThreadSafeClientConnManager(params, schReg);customerHttpClient = new DefaultHttpClient(conMgr, params); }return customerHttpClient;}可经常出现数据读取超时的问题,打印的log信息是connect socket ****** timeout
经过上网查询和自己验证,发现在使用这个单例类的时候,如果开启3个以上的线程跑,就会经常出现超时的问题。
后来发现android sdk中自带了一个类AndroidHttpClient ,这个类很好的解决了我遇到的问题。
该类初始化很简单,如下:
AndroidHttpClient httpClient = AndroidHttpClient.newInstance(TAG);
可以写在application中作为全局联网工具来使用
退出时,记得
private void shutdownHttpClient(){ if (httpClient != null) { if (httpClient.getConnectionManager() != null) { httpClient.getConnectionManager().shutdown(); } httpClient.close(); httpClient = null; } }当然,2.3以后,urlconnection是更好的选择。谷歌也推出了volley框架,简单易上手,小伙伴们赶紧来学吧。
0 0
- CustomerHttpClient单例遇到的超时问题
- 学习单例遇到的问题
- 带参数的单例模式遇到的问题
- 自己遇到的一个单例模式的问题记录
- 单例模式和Rxjava遇到的问题
- 单例模式和Rxjava遇到的问题
- 单例模式和Rxjava遇到的问题
- jsp中表单遇到的问题
- IIS6的超时问题
- SquirrelMail超时的问题
- poplib的超时问题
- 数据库连接超时的问题
- Ngnix的超时问题
- this指针在父子类中的差别-分析OGRE单例模式遇到的问题
- 【最近面试遇到的一些问题】线程安全-单例模式[转]
- 在ARC与非ARC下 iOS创建单例 遇到的问题
- 单入口框架使用$_SERVER['PHP_SELF']遇到的问题
- Struts2 单文件上传遇到的问题及解决方法
- 财经管理] 《你为什么越忙越穷》(揭示职场成功奥秘
- 环境变量添加
- 黑马程序员——String类知识点详细
- 创业之初需要准备的六个方面
- 整数个数
- CustomerHttpClient单例遇到的超时问题
- javaweb之request使用RequestDispatcher的include方法实现页面包含
- phonegap2.9+ios配置安装详细教程
- 比较字母大小
- 文学 书籍 手机格式2014.02.23
- linux网络编程之socket(二):C/S程序的一般流程和基本socket函数
- 跨部门沟通技巧有哪些?
- sed基本用法一:概念介绍
- 1的个数