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和HTTPS SchemeRegistry 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; }
好久没写博文了,写个Http连接请求获取给大家,里面一些详细参数设置,都有注释
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.