好久没写博文了,写个Http连接请求获取给大家,里面一些详细参数设置,都有注释

来源:互联网 发布:淘宝购物车怎么代付 编辑:程序博客网 时间:2024/05/17 23:26
private static HttpClient httpClient;private static int DEAFUL_BUFFER_SIZE = 8169;public static synchronized HttpClient getInstace()throws KeyStoreException, KeyManagementException,UnrecoverableKeyException, NoSuchAlgorithmException,CertificateException, IOException{if(httpClient == null){HttpParams httpParams = new BasicHttpParams();//超时设置ConnManagerParams.setTimeout(httpParams, 10*1000);//连接池获取连接超时HttpConnectionParams.setConnectionTimeout(httpParams, 10*1000);//连接超时HttpConnectionParams.setSoTimeout(httpParams, 10*1000);//请求超时(读超时)//线程最大连接数ConnManagerParams.setMaxConnectionsPerRoute(httpParams, new ConnPerRouteBean(5));//线程连接总数ConnManagerParams.setMaxTotalConnections(httpParams, 10);//异常处理机制HttpProtocolParams.setUseExpectContinue(httpParams, true);//是否检查旧连接数HttpConnectionParams.setStaleCheckingEnabled(httpParams, false);//设置版本HttpProtocolParams.setVersion(httpParams, HttpVersion.HTTP_1_1);//设置编码HttpProtocolParams.setContentCharset(httpParams, HTTP.UTF_8);//设置重定向HttpClientParams.setRedirecting(httpParams, false);//设置是否延时发送HttpConnectionParams.setTcpNoDelay(httpParams, true);//设置缓存大小HttpConnectionParams.setSocketBufferSize(httpParams, DEAFUL_BUFFER_SIZE);//设置允许所有证书KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType());keyStore.load(null,null);SSLSocketFactory sf = new SSLSocketFactory(keyStore);sf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);// 设置支持HTTP和HTTPSSchemeRegistry sr = new SchemeRegistry();sr.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));sr.register(new Scheme("https", sf, 4403));ClientConnectionManager manager = new ThreadSafeClientConnManager(httpParams, sr);httpClient = new DefaultHttpClient(manager,httpParams);}return httpClient;}


0 0