温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

java网络代理如何配置

发布时间:2026-10-24 06:06:12 来源:亿速云 阅读:114 作者:小樊 栏目:编程语言

在 Java 中配置网络代理通常用于让 Java 程序通过代理服务器访问网络(如 HTTP、HTTPS、SOCKS 等)。下面按常见场景系统说明。


一、通过 JVM 启动参数配置(最常用)

1️⃣ HTTP / HTTPS 代理

java -Dhttp.proxyHost=127.0.0.1 \
     -Dhttp.proxyPort=8080 \
     -Dhttps.proxyHost=127.0.0.1 \
     -Dhttps.proxyPort=8080 \
     -jar yourapp.jar

2️⃣ 不需要代理的地址(绕过代理)

-Dhttp.nonProxyHosts="localhost|127.0.0.1|*.example.com"

注意:nonProxyHosts 用 | 分隔,不是逗号


二、在代码中配置(System Properties)

System.setProperty("http.proxyHost", "127.0.0.1");
System.setProperty("http.proxyPort", "8080");
System.setProperty("https.proxyHost", "127.0.0.1");
System.setProperty("https.proxyPort", "8080");
System.setProperty("http.nonProxyHosts", "localhost|127.0.0.1");

⚠️ 必须在建立网络连接之前设置。


三、使用 Proxy 类(推荐、更灵活)

1️⃣ HTTP 代理

import java.net.*;

URL url = new URL("http://example.com");
Proxy proxy = new Proxy(
    Proxy.Type.HTTP,
    new InetSocketAddress("127.0.0.1", 8080)
);

URLConnection conn = url.openConnection(proxy);

2️⃣ SOCKS 代理

Proxy proxy = new Proxy(
    Proxy.Type.SOCKS,
    new InetSocketAddress("127.0.0.1", 1080)
);

四、HttpClient(Java 11+)

import java.net.*;
import java.net.http.*;

ProxySelector selector = ProxySelector.of(
    new InetSocketAddress("127.0.0.1", 8080)
);

HttpClient client = HttpClient.newBuilder()
    .proxy(selector)
    .build();

五、认证代理(用户名密码)

Authenticator authenticator = new Authenticator() {
    protected PasswordAuthentication getPasswordAuthentication() {
        return new PasswordAuthentication(
            "username",
            "password".toCharArray()
        );
    }
};
Authenticator.setDefault(authenticator);

六、常见代理类型说明

类型 Java 支持
HTTP ✅
HTTPS ✅
SOCKS4/5 ✅
透明代理 ❌(系统级)

七、调试代理问题

-Djava.net.debug=all

或只调试网络:

-Djava.net.debug=net,proxy

八、Spring / 微服务场景

Spring Boot

system:
  http:
    proxyHost: 127.0.0.1
    proxyPort: 8080

或 JVM 参数方式最稳妥。


如果你有以下需求,我可以给你具体示例:

  • ✅ 仅对某个请求走代理
  • ✅ 忽略 HTTPS 证书
  • ✅ Docker / K8s 环境代理
  • ✅ OkHttp / Apache HttpClient 配置

告诉我你的使用场景即可。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手