首页 > 其他分享 >CloseableHttpAsyncClient使用代理问题记录

CloseableHttpAsyncClient使用代理问题记录

时间:2024-12-13 10:11:16浏览次数:3  
标签:调用 http 记录 xxx 代理 proxy CloseableHttpAsyncClient

目录

场景

背景

项目A部署到现场后,甲方要求调用接口上传某些数据给他们。

问题

代码很快就开发完成了,但是领导要求必须想办法调用一次测试一次,而且现场没有测试环境(测试当生产用),只能本地使用VPN然后再调用接口测试。
VPN本身很多坑就不说了,后面VPN调试通过后,发现浏览器和postman网络是通的,但是代码和终端网络不通。

解决过程

  1. 查看网络设置,代理中启用了pac进行代理,打开对应的链接,里面是比较简单的一堆if判断,如果ip是xx.xx.xx.xx,则return proxy xxx.xxx.xxx.xxx:xxx,所以实际代理地址是后面这个地址,直接在终端export http_proxy=http://ip:port,再测试接口调用,通过,但是代码不通;
  2. 在idea中配置http代理,自动检测代理设置、自动代理配置URL和手动代理配置填写代理地址都尝试未果,后查找发现该配置只与idea本身编辑器的网络访问有关;
  3. 搜索java代理(链接),发现java可以配置代理方式,进行尝试,没有效果(而且机器上java版本很多,通过该方法修改配置的jdk也没办法使用,不知道为什么会有这个东西在);
  4. 直接终端export然后用jar包启动:maven install获取jar包,然后java -jar xxx.jar启动(小坑,需要指定application.yml配置文件或者放在同目录下),没有效果;
  5. 修改jvm配置,包括但不限于以下方式,均为生效;
    -Dhttp.proxyHost=your_proxy_host -Dhttp.proxyPort=your_proxy_port -Dhttps.proxyHost=your_proxy_host -Dhttps.proxyPort=your_proxy_port(这个会修改整个应用的配置代理,所有网络通信都会通过这个代理地址,导致连接组件失败,不确定如果配置了能不能调用通接口)
    -Djava.net.useSystemProxies=true
    -Djava.net.useSystemProxies=true -DproxyAutoConfigUrl=http://path_to_your_pac_file.pac
  6. 修改代码设置环境变量,在接口调用前加入System.setProperty()设置代理,不生效。

解决方案

接口调用使用的是org.apache.http.impl.nio.client.CloseableHttpAsyncClient,后面实在受不了了用手机Google了一下(电脑挂了VPN没办法Google),在最后一页看到有人说CloseableHttpAsyncClient是不走系统代理而是直接调用端口(地址找不到了),所以需要在创建的时候增加代理配置,加上后成功。

CloseableHttpAsyncClient httpAsyncClient = HttpAsyncClients.custom().setConnectionManager(connManager)
            .setDefaultRequestConfig(DEFAULT_REQUEST_CONFIG).setProxy(new HttpHost("ip", port, "http"))
            .build();

总结

CloseableHttpAsyncClient会直接调用接口!!!如果要走代理需要代码实现。
一个小功能验证,搞了一天,就因为网络问题和这个包不了解。
中间其实改过一次这个配置,但是不生效,应该是VPN那个蠢配置突然失效了代理没了导致的,不确定。
最后,还是Google好。

标签:调用,http,记录,xxx,代理,proxy,CloseableHttpAsyncClient
From: https://www.cnblogs.com/obed/p/18604281

相关文章

  • ASP .NET Core 中的请求-响应日志记录
    参考源码:https://download.csdn.net/download/hefeng_aspnet/90084914         记录ASP.NETCorehttp请求和响应是几乎每个.NET开发人员迟早都会面临的常见任务。长期以来,开发团队选择的最流行的方法似乎是编写自定义中间件。但是,既然 .NET6 我们有一个Micr......
  • 11.20-12-12移动开发记录
    NETMAUI1、MySQL搭建在我的服务器上完成MySQL搭建:[root~]#mysql-uroot-pEnterpassword:WelcometotheMySQLmonitor.Commandsendwith;or\g.YourMySQLconnectionidis???Serverversion:8.0.40MySQLCommunityServer-GPLCopyright(c)2000,202......
  • 打开浏览器访问网页时,显示无法连接到代理服务器,解决方案
    打开浏览器,访问任何网页都提示说检查代理服务器解决方案:1、win+r打开运行窗口2、输入inetcpl.cpl进入Internet属性界面3、选择连接-->局域网(LAN)设置4、点击局域网设置,将代理服务器的选框取消勾选5、再次访问网页,就可以正常访问了......
  • UninstallTool portable 3.7.4 分析记录
    UninstallToolportable3.7.4分析记录目录UninstallToolportable3.7.4分析记录文件信息UninstallTool_x64.datmfc程序CEnterKeyDlgCEnterKeyDlg__GetMessageMapDoDataExchangeCEnterKeyDlg__OnInitDialog_1400301BCCEnterKeyDlg__OnOk_14003086CCMainDialog::OnInitDialog......
  • web逆向实战7(中国观鸟记录中心)
    分析网站分析过程1.打开网站,我们只看xhr,点击翻页,只有一个数据包,载荷以及响应数据都是加密的,并且请求的header头也有两个加密的参数Requestid和Sign.2.我们先解决请求头的参数,我们通过搜索大法,搜索requestid,看一下只有第一个是在生成,其他地方的都是在使用,直接点进第一......
  • 谷歌Gemini升级,开启“新代理时代”
    虚拟助手将更智能,更自主谷歌发布了第二代人工智能模型Gemini的升级版,旨在打造更加智能、自主的虚拟助手。谷歌CEO桑达尔·皮查伊将此视为“新代理时代”的开端,意味着虚拟助手将能够更深入地理解用户需求,并主动提供帮助。资讯来源:meigu-kh.com具体来说,升级后的Gemini具备以下......
  • 【记录一下】设置fastreport 2024版本语言为中文
    (007分享的方法)fastreport默认为英文,将英文改为默认中文挺简单的:1、打开Sources\FastLocalization\FPC\Sources\frLanguageDefault.pas将frLanguageEnglish改为frLanguageChinese{******************************************}{}......
  • 代理IP:电子设计行业的创新加速器
    目录一、代理IP的基本概念二、代理IP的工作原理三、代理IP在电子设计行业的应用1.突破地区限制,获取全球资源2.保护隐私,提高安全性3.加速网络访问,提高设计效率四、代理IP在电子设计行业中的案例分享五、总结与展望在数字化浪潮中,电子设计行业正经历着前所未有的变......
  • 【ABAP SAP】开发-BUG修补记录_采购申请打印时品名规格品牌为空
    项目场景:TCODE:自开发程序ZMMF004采购申请打印问题描述ZMMF004打印的时候,有的采购申请的品名、规格、品牌为空原因分析:1、首先我通过写SQL语句查底表来看这几条采购申请本身有无品名、规格、品牌SQL语句如下,只需修改where条件即可测试各条数据eban底表:采购申请......
  • 探索OpenAI功能工具检索代理:动态选择工具的新方式
    探索OpenAI功能工具检索代理:动态选择工具的新方式在AI工具集不断扩展的时代,如何有效管理和选择合适的工具来解决特定的任务成为了一个关键问题。本文将介绍一种创新的解决方案:使用OpenAI功能工具检索代理来动态选择工具。这一方法特别适合拥有大量工具集的情况,可以帮助开发......