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

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

有關HttpClient與新版的HttpURLConnection差別

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

不多說,就直接看Code吧:

[java]

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");
/*以下省略*/

[/java]

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

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

Leave a comment

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *