HttpClientConnection: Register connection socket factory for http

It is necessary to register a socket connection factory to prevent the
"http protocol is not supported" error when connecting over a proxy.

Change-Id: Iedf554acef841f52c1f2e3401ef0a0583ac5253b
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
This commit is contained in:
Matthias Sohn 2016-10-13 12:27:22 +02:00
parent 32c89d2844
commit b8e3e194e3
1 changed files with 4 additions and 1 deletions

View File

@ -89,6 +89,7 @@
import org.apache.http.config.Registry;
import org.apache.http.config.RegistryBuilder;
import org.apache.http.conn.socket.ConnectionSocketFactory;
import org.apache.http.conn.socket.PlainConnectionSocketFactory;
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
import org.apache.http.conn.ssl.X509HostnameVerifier;
import org.apache.http.impl.client.HttpClientBuilder;
@ -157,7 +158,9 @@ private HttpClient getClient() {
clientBuilder.setSSLSocketFactory(sslConnectionFactory);
Registry<ConnectionSocketFactory> registry = RegistryBuilder
.<ConnectionSocketFactory> create()
.register("https", sslConnectionFactory).build();
.register("https", sslConnectionFactory)
.register("http", PlainConnectionSocketFactory.INSTANCE)
.build();
clientBuilder.setConnectionManager(
new BasicHttpClientConnectionManager(registry));
}