Playwright中调用GET API失败(ECONNREFUSED错误)
Playwright API测试出现ECONNREFUSED错误的原因及解决
错误分析
你遇到的connect ECONNREFUSED 2606:4700:20::681a:93b:443错误,本质是Playwright尝试通过IPv6地址连接api.myip.com时被拒绝。这个IPv6地址属于Cloudflare,是api.myip.com的DNS解析结果之一。
可能的原因
- 本地网络不支持IPv6:你的网络环境(比如公司内网、家用路由器)禁用了IPv6,或者防火墙拦截了IPv6的443端口访问。
- DNS解析优先级问题:DNS服务器返回了IPv6地址作为优先选项,但该地址在你的环境中无法正常连通。
- 网络代理配置缺失:如果你的网络需要通过代理访问外部地址,但Playwright的
request上下文没有配置对应的代理参数,也会导致连接失败。
解决建议
- 强制使用IPv4访问:
可以直接将请求地址替换为api.myip.com的IPv4地址(通过ping api.myip.com可获取),或者改用HTTP协议测试:
也可以在Playwright配置文件中禁用IPv6,修改// 示例:使用IPv4地址 const res = await request.get('https://104.26.13.59'); // 或者改用HTTP const res = await request.get('http://api.myip.com');playwright.config.ts:export default defineConfig({ use: { launchOptions: { args: ['--disable-ipv6'], }, }, }); - 检查网络权限:暂时关闭防火墙、安全软件,或者确认网络管理员是否允许访问外部IPv6地址。
- 配置代理(如果需要):如果你的网络需要代理,在配置文件中添加代理设置:
export default defineConfig({ use: { proxy: { server: 'http://your-proxy-server:port', }, }, });
内容的提问来源于stack exchange,提问作者Rubio
相关产品推荐
相关产品推荐

