java - 在java中为HttpRequest添加代理
问题描述
我试图了解如何使用 Java API 为每个构建的请求实现代理的使用,如下所示:
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.version(HttpClient.Version.HTTP_2)
.uri(URI.createh("https://myurl"))
.timeout(Duration.ofMinutes(2))
.setHeader("User-Agent","Just an user agent")
.GET()
.build();
HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());
我从文档中看到(https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpClient.html#Asynchronous%20Example)这可以通过Synchronous
请求来实现。我的代码在一个方法中,它将与线程并行运行。那么如何设置代理Asynchronous Requests
呢?如果不可能,它们之间有什么区别?
解决方案
解决了,文档对此有点不清楚,但最后,我能够在构建客户端时设置代理:
HttpClient client = HttpClient.newBuilder().
proxy(ProxySelector.of(new InetSocketAddress("proxy",port))))
.build();
//The request code is identical to what I wrote above.
该方法是newBuilder
反正而不是Builder
。
推荐阅读
- twitter-bootstrap - 如何从 bootstrap 4 中的 bootstrap 3.3 进行此布局?
- algorithm - 递归查找给定一组不同整数的所有子集
- c - 在 C 中运行函数时出现 SIGSEGV 错误
- r - 基于选择性消除和配对组合创建两个变量
- forms - 条纹“创建费用”脚本不运行
- python - 如何将文件中的一个字符作为键读取到字典中,然后将接下来的 n 个字符作为其值?
- android - Android SugarRecord 正在尝试使用不存在的表
- python - 在 Python 中每秒重复查询 MongoDB
- c# - C# 网站连接到 mySQL 数据库
- java - Java 超时功能不适用于我的以下代码