我正在使用配置有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)没有成功。任何提示表示赞赏。