我想使用Apache HttpClient 5为一些单独的请求而不是其他请求配置一个HTTP代理.然而,RequestConfig.Builder.setProxy()看起来是deprecated.Javadoc建议使用HttpRoutePlanner,但看起来这是在全局HttpClient级别操作的,而不是在请求级别操作的.

在HttpClient 5中,有没有办法在请求级别配置代理?

推荐答案

S determineRoute法的一个论点是HttpContext法.您可以使用它,特别是在扩展DefaultRoutePlanner并覆盖其determineProxy方法的情况下,因为这是(当前)determineRoute实现的一部分:

HttpHost proxy = config.getProxy();
if (proxy == null) {
    proxy = determineProxy(host, context);
}

对于每个请求,您现在可以显式地创建一个HttpContext,将代理主机设置为属性,然后使用自定义的DefaultRoutePlanner子类从HttpContext中提取该代理.

但这确实意味着您需要 for each 请求单独显式配置代理.

Java相关问答推荐

当耗时的代码完成时,Circular ProgressIndicator显示得太晚

Spring安全实现多个SQL表身份验证

查找最大子数组的和

@从类文件中删除JsonProperty—Java

多个Java线程和TreeMap.put()的非预期行为

在for—each循环中的AnimationTimer中的if语句'

Com.example.service.QuestionService中的构造函数的参数0需要找不到的类型为';com.example.Dao.QuestionDao;的Bean

为什么Java编译器不区分不同类型的方法?

Tinylog中的滚动文件会在每次应用启动时覆盖日志(log)文件

WebSockets和Spring Boot安全性出现错误401

try 在Android Studio中的infoWindow中使用EditText(Java)

如何配置空手道以使用FeignClient或RestTemplate代替ApacheHttpClient

如何以编程方式保存workBench.xmi?

深度优先搜索实现:算法只向右搜索

记录是类的语法糖吗?

如何在ApacheHttpClient 5中为单个请求设置代理?

如果c不为null,Arrays.sort(T[]a,Comparator<;?super T>;c)是否会引发ClassCastException?

OpenJDK20:JEP434:Foreign Function&;内存API(第二次预览)

using case default on switch语句返回;预览特征切换中的模式匹配仅在源级别20及以上的情况下可用;

找不到 jar 文件系统提供程序try 使用 jdeps 和 jlink 创建收缩 Java 映像来运行 Minecraft