LearnHouse

[Android]HttpClient實作HTTPs與強制允許自簽憑證(Self-Signed Certificate)

HttpClient是早期Android提供可以用來與WebServer溝通的API

Android2.3之後就建議使用新的HttpURLConnection,這裡我就不在贅述

有關HttpClient與新版的HttpURLConnection差別

請直接看上一篇HttpsURLConnection實作HTTPs與強制允許自簽憑證(Self-Signed Certificate)

不多說,就直接看Code吧:


				SchemeRegistry schemeRegistry = new SchemeRegistry();
				// http scheme
				schemeRegistry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));
				// https scheme
				schemeRegistry.register(new Scheme("https", new EasySSLSocketFactory(), 443));

				HttpParams params = new BasicHttpParams();
				params.setParameter(ConnManagerPNames.MAX_TOTAL_CONNECTIONS, 30);
				params.setParameter(ConnManagerPNames.MAX_CONNECTIONS_PER_ROUTE, new ConnPerRouteBean(30));
				params.setParameter(HttpProtocolParams.USE_EXPECT_CONTINUE, false);
				HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);

				ClientConnectionManager cm = new ThreadSafeClientConnManager(params, schemeRegistry);
				HttpClient client = new DefaultHttpClient(cm, params);

				final HttpPost post = new HttpPost("https://127.0.0.1/login.php");
				post.setHeader("Connection", "Keep-Alive");
				post.setHeader("Content-Type", "multipart/form-data");
				/*以下省略*/

其中缺的EasySSLSocketFactoryEasyX509TrustManager可以直接點選連結後複製

因為這兩隻程式有使用Apache的License,因此我就不貼上來了。

posted by admin in 程式&軟體 and have No Comments

Place your comment

Please fill your data and comment below.
Name
Email
Website
Your comment