将 Web 代理与 Java 8 个 JAX-RS RESTEasy 客户端一起使用
Using web proxy with Java 8 JAX-RS RESTEasy clients
我似乎无法让 JAX-RS 客户端在 Java 上使用 Web 代理 8。我在内部使用 RESTEasy 3.0.10.Final 和 运行 Windows 7 Professional 64 位上的 Eclipse 4.4.2。
我在 localhost
运行 192.168.1.123:3128
上设置了一个 FreeProxy 服务器。我打开日志并远程登录到 192.168.1.123 3128 并发布手册 GET
。该请求显示在日志中。
然后我启动我的 Java 应用程序,在系统属性中设置 http.proxyHost=192.168.1.123
和 http.proxyPort=3128
。 (我什至在启动 JVM 时尝试使用 -D
。)(请注意,我不希望 localhost
problem 发挥作用,因为我正在连接到一个实际的 IP 地址,而不是至 localhost
.)
我使用 ClientBuilder.newBuilder().build()
创建了一个 JAX-RS 客户端并对资源执行了 GET
。 FreeProxy 日志中没有显示任何内容。
我需要做什么才能让 JAX-RS 客户端使用代理?
ResteasyClientBuilder提供了定义defaultProxy的方法:
ResteasyClient client = new ResteasyClientBuilder().defaultProxy("localhost", 8080, "http").build();
似乎可以通过使用 different engine 而不是 HttpClient
让 RESTeasy 使用 Java 的代理属性(例如 -Dhttp.proxyHost
)。 java.net.HttpURLConnection
支持开箱即用的代理属性:
ResteasyClient client = new ResteasyClientBuilder().httpEngine(new URLConnectionEngine()).build();
对于 RESTEasy 4,这是我为此所做的:
ResteasyClient client = ((ResteasyClientBuilder) ClientBuilder.newBuilder())
.defaultProxy(proxyHost, proxyPort)
.build();
return client
.target(ENDPOINT_URL)
.proxy(EndpointResource.class);
我似乎无法让 JAX-RS 客户端在 Java 上使用 Web 代理 8。我在内部使用 RESTEasy 3.0.10.Final 和 运行 Windows 7 Professional 64 位上的 Eclipse 4.4.2。
我在 localhost
运行 192.168.1.123:3128
上设置了一个 FreeProxy 服务器。我打开日志并远程登录到 192.168.1.123 3128 并发布手册 GET
。该请求显示在日志中。
然后我启动我的 Java 应用程序,在系统属性中设置 http.proxyHost=192.168.1.123
和 http.proxyPort=3128
。 (我什至在启动 JVM 时尝试使用 -D
。)(请注意,我不希望 localhost
problem 发挥作用,因为我正在连接到一个实际的 IP 地址,而不是至 localhost
.)
我使用 ClientBuilder.newBuilder().build()
创建了一个 JAX-RS 客户端并对资源执行了 GET
。 FreeProxy 日志中没有显示任何内容。
我需要做什么才能让 JAX-RS 客户端使用代理?
ResteasyClientBuilder提供了定义defaultProxy的方法:
ResteasyClient client = new ResteasyClientBuilder().defaultProxy("localhost", 8080, "http").build();
似乎可以通过使用 different engine 而不是 HttpClient
让 RESTeasy 使用 Java 的代理属性(例如 -Dhttp.proxyHost
)。 java.net.HttpURLConnection
支持开箱即用的代理属性:
ResteasyClient client = new ResteasyClientBuilder().httpEngine(new URLConnectionEngine()).build();
对于 RESTEasy 4,这是我为此所做的:
ResteasyClient client = ((ResteasyClientBuilder) ClientBuilder.newBuilder())
.defaultProxy(proxyHost, proxyPort)
.build();
return client
.target(ENDPOINT_URL)
.proxy(EndpointResource.class);