带有HTTP代理的Jersey客户端-设置CONNECT请求标头

时间:2019-07-02 12:28:01

标签: java http proxy jersey

我正在使用配置有HTTP代理的Jersey客户端(v。2.25.1)。

    HttpUrlConnectorProvider connectorProvider =
            new HttpUrlConnectorProvider().connectionFactory(url -> {
                HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection(new Proxy(
                        Proxy.Type.HTTP,
                        new InetSocketAddress("hostname", port)));
                return httpURLConnection;
            });
    ClientConfig clientConfig = new ClientConfig().connectorProvider(connectorProvider);
    javax.ws.rs.client.Client client = ClientBuilder.newClient(clientConfig);

当我使用客户端执行HTTP请求时,它首先将CONNECT请求发送到代理服务器。是否可以在CONNECT请求中设置自定义标头(例如身份验证或我自己的标头)?我正在寻找--proxy-header标志(https://curl.haxx.se/docs/manpage.html#--proxy-header

提供的类似CURL的内容。

默认情况下,客户端使用sun.net.www.protocol.http.HttpURLConnection,该客户端使用sendCONNECTRequest方法发送CONNECT请求。经过一些调试后,看起来无法修改标头值/添加新的标头值。

我查看了其他方法(例如,使用org.glassfish.jersey.apache.connector.ApacheConnectorProvider)没有成功。任何提示表示赞赏。

0 个答案:

没有答案