java - 供应商通过透明代理请求
问题描述
我正在尝试使用提供程序的 HttpAsyncClient 通过透明的 Squid 代理发出请求。我正在按如下方式构建客户端。
HttpHost proxyHost = new HttpHost("myproxy.com", 2345);
UsernamePasswordCredentials basicCreds = new UsernamePasswordCredentials("username", "password");
CredentialsProvider provider = new BasicCredentialsProvider();
provider.setCredentials(AuthScope.ANY, basicCreds);
SSLContext context = SSLContext.getDefault();
Supplier<CloseableHttpAsyncClient> supplier = () -> HttpAsyncClientBuilder.create()
.setThreadFactory(ThreadUtils.newThreadFactory("test_service"))
.setMaxConnPerRoute(1024)
.setMaxConnTotal(2048)
.setSSLContext(context)
.setProxy(proxyHost)
.setDefaultCredentialsProvider(provider)
.build();
CloseableHttpAsyncClient client = (CloseableHttpAsyncClient) supplier.get();
HttpGet request = new HttpGet("example.com:port");
client.start();
Future<HttpResponse> future = client.execute(request, null);
HttpResponse response = future.get();
执行时出现“对等连接重置”,代理服务器上的评估日志中出现“错误:事务结束前标头”。我已经使用 OkHttpClient 看到了这种行为,并使用委托修复了它。在这种情况下,我看不到如何正确设置代理。
解决方案
推荐阅读
- c++ - 不使用 std::setw()
标题 - html - css 属性“会改变”会降低性能吗?
- javascript - 使用 javascript 读取多个 csv 文件并将内容存储在单独的变量中
- pyqt5 - Pyqt5:如何限制QMainWindow中QPushButton的拖动区域?
- mysql - 如何用一个输出连接三个表
- r - 修复绘图颜色和图例颜色之间的不匹配
- javascript - javascript文件不起作用或上传nodejs express
- javascript - 是否可以在jstree中为父级设置单选按钮和为子级设置复选框按钮?
- xamarin.forms - 如何从 SfChart 中的轨迹球中获取当前点的数据(值)?
- c# - 将本机日志记录机制转发到 C# Microsoft.Extensions.Logging.ILogger