Apache HttpClient 4.3.5 设置代理

2023-11-21

看来我可以在构建 new 时指定代理HttpClient with:

HttpHost proxy = new HttpHost("someproxy", 8080);
DefaultProxyRoutePlanner routePlanner = new DefaultProxyRoutePlanner(proxy);
CloseableHttpClient httpclient = HttpClients.custom()
    .setRoutePlanner(routePlanner)
    .build();

取自http://hc.apache.org/httpcomponents-client-ga/tutorial/html/connmgmt.html#d5e475

是否可以修改现有客户端的代理设置。


您可以创建自己的 HttpRoutePlanner 实现,以允许更改 HttpHost。

public class DynamicProxyRoutePlanner implements HttpRoutePlanner {

    private DefaultProxyRoutePlanner defaultProxyRoutePlanner = null;

    public DynamicProxyRoutePlanner(HttpHost host){
        defaultProxyRoutePlanner = new DefaultProxyRoutePlanner(host);
    }

    public void setProxy(HttpHost host){
        defaultProxyRoutePlanner = new DefaultProxyRoutePlanner(host);
    }

    public HttpRoute determineRoute(HttpHost target, HttpRequest request, HttpContext context) {
        return defaultProxyRoutePlanner.determineRoute(target,request,context); 
    }
}

然后你可以在你的代码中使用这个DynamicProxy RoutePlanner

HttpHost proxy = new HttpHost("someproxy", 8080);
DynamicProxyRoutePlanner routePlanner = new DynamicProxyRoutePlanner(proxy);
CloseableHttpClient httpclient = HttpClients.custom()
    .setRoutePlanner(routePlanner)
    .build();

//Any time change the proxy 
routePlanner.setProxy(new HttpHost("someNewProxy", 9090));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Apache HttpClient 4.3.5 设置代理 的相关文章

随机推荐

  • Android MVP:一个 Activity 具有多个 Fragment

    我有一个活动 它托管多个片段 这些片段定义用户注册流程中的每个步骤 该流程很复杂 下一步是由前面步骤中的用户操作定义的 流程如下 MainActivity Fragment1 gt Fragment2 gt Fragment3 gt Fra
  • 如何使用 SVML 指令 [重复]

    这个问题在这里已经有答案了 我正在尝试计算exponential使用 SIMD 的函数 我发现了这个功能 我已经包含了 immintrin h 在我的代码中 我的CPU也有一个SSE旗帜 但gcc正在抱怨error mm exp pd wa
  • dropzone js 将删除网址与删除按钮链接起来

    在 Dropzone Js 中 我正在创建删除按钮 然后将其附加到缩略图中 如何链接直接从服务器获取的 url 以使用删除按钮addRemoveLinks true Write function if you need to add som
  • PrettyPhoto 的 rel 属性验证错误

    看起来 W3C 的验证器在 HTML5 页面的 PrettyPhoto rel 属性上返回验证错误 我该如何解决这个错误 元素 a 上的属性 rel 值有错误 PrettyPhoto gallery1 未注册关键字 PrettyPhoto
  • Android AlertDialog 框 WindowManager$BadTokenException 问题

    我将以下代码用于上下文菜单 然后如果用户选择删除 则会出现对话框消息 infos setOnCreateContextMenuListener new OnCreateContextMenuListener Override public
  • Greasemonkey 可以使用 file:// 协议吗?

    我有一个简单的 Greasemonkey 脚本 UserScript name hello namespace http www webmonkey com description A test of accessing documents
  • Smalltalk 中的运算符可以过载吗?

    Smalltalk 中是否可以重载运算符 我正在寻找教程 示例 Thanks Smalltalk 中不可能进行方法重载 相反 方法重写和称为的技术的组合双重调度用于实现与其他语言中的运算符重载相同的行为 您可以在数学运算符中找到示例实现 这
  • Android Studio:该文件不是项目的一部分,但项目构建成功

    我在android studio中突然出现了一个奇怪的问题 我创建了一个新的 cpp 文件 并将其包含在 Android mk 中 然后我同步了该项目 然而 android studio 仍然抱怨该文件不是项目的一部分 我需要同步 但整个项
  • 找不到模块FindOpenCV.cmake(配置过程中出错)

    我写了一个CMakeLists txt对于一个项目C 它使用OpenCV图书馆 当我尝试使用 cmake 创建项目时 出现下一个配置问题 CMake Error at CMakeLists txt 15 find package Could
  • 如何告诉 Symfony 3 忽略某些注释?

    我正在使用 Symfony 3 开发 API 我想使用apidoc创建文档 APIDoc 使用注释 api get user id Request User information apiName GetUser apiGroup User
  • 如何提取没有索引的数组的键和值[关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 我想从数组 带有键和值的原始数组 中提取数据 提取数组后 我需要两个新数组 第一个数组仅
  • 将 backstack 与 ViewPager 结合使用

    我正在使用 ViewPager 在我的 Android 应用程序中实现滑动 但是 我希望当用户使用后退按钮而不是结束活动时显示前一个片段 有什么办法可以做到这一点吗 谢谢 塞巴斯蒂安 我有类似的问题 这就是我解决的方法 我有一个包含 6 个
  • 如何使用 python lambda 捕获异常

    假设 Python 版本 gt 3 并调用函数列表 我想编写一个处理异常的 lambda 函数 事实是 它不起作用 当函数中抛出异常时 程序返回并且调用堆栈看不到executeFunction in it 怎么办呢 def executeF
  • 检查文本文件中是否存在字符串

    所以我有 def CheckUserExists user with open C database txt r as file if re search user file read return True else return Fal
  • MySQL并发更新

    我有一个小型 POS 系统 服务器端使用 PHP 和 MySql InnoDB 当 销售 完成时 执行以下查询来更新库存数量 UPDATE products SET qty qty qty ustatus 1 WHERE pid pid 这
  • 正确使用SetThreadAffinityMask

    有 12 个核心 12 个线程正在运行 我想将 1 个线程绑定到每个核心 这就是我在每个线程的开头所说的 int core 12 SetThreadAffinityMask GetCurrentThread 1 lt
  • VBA 取消过滤范围

    我正在使用这段代码 Sheets Sheet1 AutofilterMode False 使用 VBA 取消筛选 Excel 工作表中的数据 重点是清除所有筛选器 这似乎并不总是有效 有更好的方法吗 谢谢你 如果有帮助的话 该表是从 Sql
  • 如何通过多个sudo和su命令找到原始用户?

    通过 sudo 或 su 运行脚本时 我想获取原始用户 无论是否有多个 这都应该发生sudo or su彼此内部运行 特别是sudo su Results Use who am i awk print 1 OR logname因为没有其他方
  • (通用)lisp 中的 Unix 信号处理

    我对这个主题做了一些研究 但发现了一些空白 在 Common Lisp 中似乎有依赖于实现的方法来进行 Unix 信号处理 但是是否有一个包可以提供跨实现的信号处理方法 我主要想监听 SIGINT 并在我的应用程序中正常关闭 我在 Linu
  • Apache HttpClient 4.3.5 设置代理

    看来我可以在构建 new 时指定代理HttpClient with HttpHost proxy new HttpHost someproxy 8080 DefaultProxyRoutePlanner routePlanner new D