gpt4 book ai didi

java - 如何在java http请求中获取代理响应?

转载 作者:行者123 更新时间:2023-12-01 10:19:18 26 4
gpt4 key购买 nike

我通过代理服务器发送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);

最佳答案

How can I get the same output in Java?

一种方法是使用 HTTPClientConnection 对象自行进行代理。

另一种方法是实现您自己的 HttpClientConnectionManager API 版本,用于捕获并保存代理响应。

但是,这并不容易......而且我真的不明白这一点。如果您只是想查看发送和接收的内容以进行调试,那么更简单的方法是使用 Apache HttpClient 日志记录,如下所述:

您甚至可以让 Apache 执行“通过网络”进行的所有操作。

关于java - 如何在java http请求中获取代理响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35718264/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com