diff --git a/core-httpclient-impl/src/main/java/com/optimizely/ab/OptimizelyHttpClient.java b/core-httpclient-impl/src/main/java/com/optimizely/ab/OptimizelyHttpClient.java index d5e0818df..86801396a 100644 --- a/core-httpclient-impl/src/main/java/com/optimizely/ab/OptimizelyHttpClient.java +++ b/core-httpclient-impl/src/main/java/com/optimizely/ab/OptimizelyHttpClient.java @@ -103,6 +103,7 @@ public OptimizelyHttpClient build() { .setDefaultRequestConfig(HttpClientUtils.DEFAULT_REQUEST_CONFIG) .setConnectionManager(poolingHttpClientConnectionManager) .disableCookieManagement() + .useSystemProperties() .build(); return new OptimizelyHttpClient(closableHttpClient); diff --git a/core-httpclient-impl/src/test/java/com/optimizely/ab/OptimizelyHttpClientTest.java b/core-httpclient-impl/src/test/java/com/optimizely/ab/OptimizelyHttpClientTest.java index 299225a2f..a67e61501 100644 --- a/core-httpclient-impl/src/test/java/com/optimizely/ab/OptimizelyHttpClientTest.java +++ b/core-httpclient-impl/src/test/java/com/optimizely/ab/OptimizelyHttpClientTest.java @@ -16,13 +16,14 @@ */ package com.optimizely.ab; -import org.apache.http.HttpResponse; -import org.apache.http.client.ClientProtocolException; -import org.apache.http.client.HttpClient; import org.apache.http.client.ResponseHandler; +import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpUriRequest; import org.apache.http.client.methods.RequestBuilder; +import org.apache.http.conn.HttpHostConnectException; import org.apache.http.impl.client.CloseableHttpClient; +import org.junit.After; +import org.junit.Before; import org.junit.Test; import java.io.IOException; @@ -33,6 +34,16 @@ public class OptimizelyHttpClientTest { + @Before + public void setUp() { + System.setProperty("https.proxyHost", "localhost"); + } + + @After + public void tearDown() { + System.clearProperty("https.proxyHost"); + } + @Test public void testDefaultConfiguration() { OptimizelyHttpClient optimizelyHttpClient = OptimizelyHttpClient.builder().build(); @@ -50,6 +61,15 @@ public void testNonDefaultConfiguration() { assertTrue(optimizelyHttpClient.getHttpClient() instanceof CloseableHttpClient); } + @Test(expected = HttpHostConnectException.class) + public void testProxySettings() throws IOException { + OptimizelyHttpClient optimizelyHttpClient = OptimizelyHttpClient.builder().build(); + + // If this request succeeds then the proxy config was not picked up. + HttpGet get = new HttpGet("https://www.optimizely.com"); + optimizelyHttpClient.execute(get); + } + @Test public void testExecute() throws IOException { HttpUriRequest httpUriRequest = RequestBuilder.get().build(); diff --git a/java-quickstart/build.gradle b/java-quickstart/build.gradle index e419ec70a..1bedc6b79 100644 --- a/java-quickstart/build.gradle +++ b/java-quickstart/build.gradle @@ -9,6 +9,8 @@ dependencies { } task runExample(type: JavaExec) { + systemProperties System.properties + main "com.optimizely.Example" classpath sourceSets.test.runtimeClasspath }