NipGeihou's blog NipGeihou's blog
  • Java

    • 开发规范
    • 进阶笔记
    • 微服务
    • 快速开始
    • 设计模式
  • 其他

    • Golang
    • Python
    • Drat
  • Redis
  • MongoDB
  • 数据结构与算法
  • 计算机网络
  • 应用

    • Grafana
    • Prometheus
  • 容器与编排

    • KubeSphere
    • Kubernetes
    • Docker Compose
    • Docker
  • 组网

    • TailScale
    • WireGuard
  • 密码生成器
  • 英文单词生成器
🍳烹饪
🧑‍💻关于
  • 分类
  • 标签
  • 归档

NipGeihou

我见青山多妩媚,料青山见我应如是
  • Java

    • 开发规范
    • 进阶笔记
    • 微服务
    • 快速开始
    • 设计模式
  • 其他

    • Golang
    • Python
    • Drat
  • Redis
  • MongoDB
  • 数据结构与算法
  • 计算机网络
  • 应用

    • Grafana
    • Prometheus
  • 容器与编排

    • KubeSphere
    • Kubernetes
    • Docker Compose
    • Docker
  • 组网

    • TailScale
    • WireGuard
  • 密码生成器
  • 英文单词生成器
🍳烹饪
🧑‍💻关于
  • 分类
  • 标签
  • 归档
  • 【Java】HttpClient使用代理访问网络

    • 实际操作
      • 开启纸飞机R
      • 设置代理服务器
      • Java代码
NipGeihou
2019-02-03
Java
目录

【Java】HttpClient使用代理访问网络

在开发过程用,程序可能需要向国外网站发送请求响应,但由于某些原因,我们无法正常访问,这时我们需要代理上网,但如果只开启在系统开启 纸飞机R ,程序依然不能正常访问,在网上查阅相关资料后,得知有两种方式去实现:一是在 IDE 上设置代理,这种仅适用于,在程序开发时无法访问,而程序最终运行环境(境外服务器)能够正常访问的情况;二是将代理上网写在程序中,这样程序最终运行环境不能正常访问也可以,而我是第二种情况。

我使用的是 Apache 的 HttpClient 类和 纸飞机R ,尝试过 System.setProperty("proxyHost", "127.0.0.1");System.setProperty("proxyPort", "1080"); 似乎不起作用,查阅到参考文章后,发现博主也有与我类似的情况,最后使用 RoutePlanner类 成功代理上网。

# 实际操作

# 开启纸飞机 R

具体操作,网上很多,就不再赘述了,能够正常代理上网即可

# 设置代理服务器

纸飞机 R 默认已经开启 1080 端的代理服务器,如有特殊需要,可以在 选项设置 里设置

# Java 代码

正常使用 HttpClient 类时,应该如下开头

CloseableHttpClient httpclient = HttpClients.createDefault();
HttpGet httpGet = new HttpGet(url);
//...

如果需要用代理上网则需要 CloseableHttpClient httpclient = HttpClients.createDefault(); 注释掉或删除

HttpHost proxy = new HttpHost("127.0.0.1", 1080, "HTTP");
DefaultProxyRoutePlanner routePlanner = new DefaultProxyRoutePlanner(proxy); 
CloseableHttpClient httpclient = HttpClients.custom()
		        .setRoutePlanner(routePlanner)
		        .build();

//改为上方代码
HttpGet httpGet = new HttpGet(url);
//...

注意:代理 https 也是使用 HttpHost proxy = new HttpHost("127.0.0.1", 1080, "HTTP"); ,而无需将 HTTP 改成 HTTPS

参考文章:java 代理设置 | Donny 的技术博客 (opens new window)

#Java#HttpClient
上次更新: 2024/03/11, 22:37:05
最近更新
01
Docker Swarm
04-18
02
安全隧道 - gost
04-17
03
Solana最佳实践
04-16
更多文章>
Theme by Vdoing | Copyright © 2018-2025 NipGeihou | 友情链接
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式