私たちはいくつかのプロジェクトで同様のSocketFactory
とX509TrustManager
の実装を使用します。これらのクラスを実装にバインドするには、クライアントとサーバー間の通信に使用されるHttpClient
(使用しているものと仮定します)に接続するだけです。
通常、前述のファクトリとtrustmanagerを使用してHttpClient
を作成する方法があります。これはいくらか似ていて、インラインコメントに示されているリンクに基づいています。
protected HttpClient constructClient() {
HttpParams params = new BasicHttpParams();
params.setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1);
// use the debug proxy to view internet traffic on the host computer
if (ABCApplication.isDebuggingProxy()) params.setParameter(ConnRoutePNames.DEFAULT_PROXY, new HttpHost(ABCConstants.DEBUG_PROXY_HOST, ABCConstants.DEBUG_PROXY_PORT, "http"));
// ignore ssl certification (due to signed authority not appearing on android list of permitted authorities)
// see: http://blog.antoine.li/2010/10/22/android-trusting-ssl-certificates/
SchemeRegistry registry = new SchemeRegistry();
registry.register(new Scheme("http", new PlainSocketFactory(), 80));
registry.register(new Scheme("https", new FakeSocketFactory(), 443));
ClientConnectionManager cm = new SingleClientConnManager(params, registry);
return new DefaultHttpClient(cm, params);
}
あなたの実装に役立つ希望。
を使用することができます!それは私がやった他のすべてのものがやっていたことと同じように見えますが、かなり多くのパラメータを追加していました。彼らはまた、Singleの代わりにThreadSafeClientConnManagerを使うことを好むように思えました。私は時間があるとき、私は違いについて自分自身を教育するでしょう。気高い! (もし私が担当していたら、私はあなたの答えを+1するだろう)。 – MBro