You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用API报java.net.UnknownHostException 办公网proxy.pac场景求适配代码

你遇到的java.net.UnknownHostException是因为JVM默认不会自动读取系统的PAC代理配置,HTTP请求没有走办公网代理导致域名解析失败。以下是适配PAC代理场景的代码方案,无需手动填写代理服务器地址:


方案一(最简方案,无额外依赖)

仅需在发起请求前添加一行配置,开启JVM的系统代理自动识别即可,完整代码如下:

import io.restassured.RestAssured;
import io.restassured.response.Response;

public class ApiTest {
    public static void main(String[] args) {
        // 开启JVM自动读取系统代理配置,适配PAC自动代理场景
        System.setProperty("java.net.useSystemProxies", "true");
        
        Response response = RestAssured.given()
                .relaxedHTTPSValidation()
                .when()
                .get("https://www.nseindia.com/api/search/autocomplete?q=HCLTECH");

        // 调试用,打印响应结果
        System.out.println(response.asString());
    }
}

方案二(适配未配置全局系统代理的场景)

如果你的操作系统没有全局配置PAC代理,仅持有PAC文件地址,可通过ProxySelector自动加载PAC规则匹配代理,示例如下:

import io.restassured.RestAssured;
import io.restassured.response.Response;
import java.net.Proxy;
import java.net.ProxySelector;
import java.net.URI;
import java.util.List;

public class ApiTest {
    public static void main(String[] args) {
        // 加载PAC代理规则,自动匹配目标地址对应的代理
        ProxySelector proxySelector = ProxySelector.getDefault();
        List<Proxy> proxies = proxySelector.select(URI.create("https://www.nseindia.com"));
        Proxy proxy = proxies.get(0); // 取PAC匹配到的第一个可用代理
        
        Response response = RestAssured.given()
                .relaxedHTTPSValidation()
                .proxy(proxy) // 传入自动匹配到的代理
                .when()
                .get("https://www.nseindia.com/api/search/autocomplete?q=HCLTECH");

        System.out.println(response.asString());
    }
}

注意事项

  • 方案一需要确保操作系统已经配置好办公网的PAC自动代理规则,配置后重启运行代码的IDE/服务即可生效
  • 部分JDK版本对系统代理的读取存在兼容性问题,如方案一不生效可直接使用方案二
  • 如果办公网代理需要身份认证,可在given()后追加.auth().proxy(代理账号, 代理密码)传入认证信息即可

内容的提问来源于stack exchange,提问作者Thomas Anto Nishanth

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 15:45:03