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

无法在Eclipse/IntelliJ中通过Java/JUnit+RestAssured发送API请求

解决RestAssured在代理环境下请求失败的问题

看起来你遇到的核心问题是RestAssured没有正确配置办公网络的代理设置,导致请求连接被重置。手动请求能成功,是因为浏览器或你用的工具已经自动读取了系统的代理配置,但RestAssured默认不会自动继承这些设置,得手动配置才行。

下面是几种可行的解决方案:

1. 在代码中直接配置代理

你可以在测试代码里显式设置RestAssured的代理参数,这样针对单个测试或测试类生效:

import io.restassured.RestAssured;
import io.restassured.specification.ProxySpecification;

// 基础代理配置(无需认证)
RestAssured.proxy("你的代理主机地址", 代理端口);

// 如果代理需要用户名密码认证
ProxySpecification proxy = new ProxySpecification("你的代理主机地址", 代理端口)
    .withAuth("代理用户名", "代理密码");
RestAssured.useProxy(proxy);

配置完之后,再发送GET请求应该就能正常连接了。

2. 通过JVM启动参数配置代理

如果你希望整个项目的测试都使用代理,不想在代码里硬编码,可以通过JVM参数来设置,这样所有RestAssured请求都会自动使用代理:

Eclipse设置方式:

  • 打开Run Configurations
  • 找到你的JUnit测试配置,切换到Arguments标签
  • 在VM arguments里添加以下参数:
-Dhttp.proxyHost=你的代理主机地址 -Dhttp.proxyPort=代理端口
-Dhttps.proxyHost=你的代理主机地址 -Dhttps.proxyPort=代理端口
// 若需要认证,追加以下参数
-Dhttp.proxyUser=代理用户名 -Dhttp.proxyPassword=代理密码
-Dhttps.proxyUser=代理用户名 -Dhttps.proxyPassword=代理密码

IntelliJ设置方式:

  • 打开Run/Debug Configurations
  • 找到你的JUnit测试配置,在VM options里添加上述参数

3. 验证代理配置是否生效

为了确保配置正确,可以在测试代码里打印当前的代理设置,确认参数是否正确应用:

System.out.println("当前RestAssured代理配置:" + RestAssured.getProxySpecification());

另外要注意,你请求的swapi.co是HTTPS协议,所以一定要确保HTTPS的代理参数也配置正确,很多时候只配置HTTP代理会导致HTTPS请求失败。

内容的提问来源于stack exchange,提问作者bobe_b

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 09:18:05