【发布时间】:2016-03-01 08:49:25
【问题描述】:
我通过代理服务器发送 http 请求。
当我使用curl 时,我得到两部分响应:来自代理服务器和来自目标服务器:
curl -i --proxy proxy.com:8080 --proxy-user user:1234 https://target.com
HTTP/1.1 200 Connection established
X-Proxy-Header: Header-Value: connected established
HTTP/1.1 200 OK
Server: target.com
other headers
http response
如何在 Java 中获得相同的输出?我使用 apache HttpClient,它只返回来自目标服务器的响应。缺少代理响应。
我需要基本的想法而不是具体的实现,因为我也必须将它重用于 Netty 库。无论如何,示例代码开始:
HttpHost myProxy = new HttpHost("proxy.com", 8080);
CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
credentialsProvider.setCredentials(new AuthScope(myProxy), new UsernamePasswordCredentials("user", "1234"));
HttpClient client = HttpClients.custom()
.setConnectionManager(new BasicHttpClientConnectionManager())
.setProxy(myProxy)
.setDefaultCredentialsProvider(credentialsProvider)
.build();
HttpGet request = new HttpGet(url);
HttpResponse = client.execute(response);
【问题讨论】:
标签: java http curl proxy apache-httpclient-4.x