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

Java代码抛出java.net.ConnectException连接拒绝问题求助

问题描述

我在本地创建了一个JSON文件,尝试通过服务器访问(附截图:截图1、截图2)。该请求在Postman中可正常运行,但通过RestAssured代码执行时却抛出java.net.ConnectException: Connection refused: connect错误。

代码实现:

public class GetUsingLocalJson {
    @Test
    void testGet() throws Exception {
        given().when().get("http://localhost:3000/students").then().log().all();
    }
}

导入语句:

import static io.restassured.RestAssured.*;
import static io.restassured.matcher.RestAssuredMatchers.*;
import static org.hamcrest.Matchers.*;

求排查代码运行失败的原因。


排查步骤
  • 确认本地服务器状态:运行代码时,务必保证提供JSON接口的本地服务器处于启动状态。Postman能访问不代表代码运行时服务器还在运行,可能中途意外停止。
  • 核对端口一致性:仔细检查Postman请求的URL端口是否和代码中的3000完全一致,避免端口输错。
  • 检查网络环境隔离:如果代码运行在容器、虚拟机或测试沙箱环境中,localhost可能指向的是容器/虚拟机内部而非宿主机。此时将请求URL中的localhost替换为宿主机的实际IP(如192.168.1.100)再尝试。
  • 排查防火墙/安全软件拦截:本地防火墙或杀毒软件可能允许Postman访问,但拦截了Java进程的请求。可以临时关闭防火墙测试,或把Java程序加入安全软件的白名单。
  • 禁用RestAssured代理:如果RestAssured被配置了全局代理,会导致请求走代理无法访问本地服务器。在代码中添加proxy(ProxySpecification.NO_PROXY)禁用代理:
    given().proxy(ProxySpecification.NO_PROXY).when().get("http://localhost:3000/students").then().log().all();
    
  • 验证服务器IP协议支持:部分服务器可能仅监听IPv6地址,而Java默认用IPv4访问localhost。可以尝试用IPv6格式的本地地址请求:http://[::1]:3000/students,或修改服务器配置使其同时监听IPv4和IPv6。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 12:05:19