我正在使用Jersey 2.4.1进行休息,并希望通过HTTP和HTTPS代理进行GET或Post调用.我无法做到.我已经在互联网上搜索并找到了许多链接,但现在大部分已经过时了.一些帮助将非常有用,因为从Jersey 1.X到2.X有很多变化
这是我的GET调用代码(工作正常).我想修改它以通过HTTP和HTTPS代理进行此调用.任何指针都会有所帮助.
javax.ws.rs.core.Response response = null; Client client = ClientBuilder.newClient(); WebTarget target = client.target(url); //url is string response = target.request().header("Authorization",header).accept(javax.ws.rs.core.MediaType.APPLICATION_JSON).get();
解决方法
尝试使用ClientConfiguration对象,设置所需的任何属性,然后使用ClientBuilder.withConfig(配置配置)设置配置.然后,您可以使用build()方法构建它.
看看这个例子:
看看这个例子:
ClientConfig cc = new ClientConfig(); cc.property(ClientProperties.PROXY_URI,"8.8.8.8:80"); Client client = JerseyClientBuilder.withConfig(cc).build();
但这仅适用于http代理.
要设置https代理,您必须设置系统属性,如下所示:
System.setProperty("http.proxyHost","some.proxy"); System.setProperty("http.proxyPort","3476"); System.setProperty("https.proxyHost","some.https.proxy"); System.setProperty("https.proxyPort","6235");