Ktor Client连接localhost:5173时出现连接拒绝错误求助
解决Ktor Client连接localhost:5173时的"Connection refused"错误
确认目标服务器处于运行状态
先通过浏览器或者命令行工具验证http://localhost:5173是否可访问,比如执行curl http://localhost:5173。如果外部工具也无法访问,问题出在服务器端,需确认服务器监听的是localhost或0.0.0.0(允许本地连接),且端口确实为5173,未被防火墙拦截。检查CIO引擎的超时配置
CIO引擎默认超时设置较短,可能导致连接请求被提前终止,可显式配置超时参数:val client = HttpClient(CIO) { engine { connectTimeout = 5000 // 5秒连接超时 requestTimeout = 10000 // 10秒请求超时 } } val response: HttpResponse = client.get("http://localhost:5173")验证请求地址的准确性
检查URL是否存在拼写错误,比如端口号是否为5173而非其他数字。如果服务器运行在Docker容器或虚拟机内,localhost会指向容器/虚拟机内部网络,此时需替换为宿主机的实际IP地址(如192.168.1.100)。排查端口占用情况
确认5173端口未被其他进程占用:- Windows系统:执行
netstat -ano | findstr :5173 - macOS/Linux系统:执行
lsof -i :5173或netstat -tulpn | grep :5173
若端口被占用,可终止占用进程,或修改服务器/客户端的端口号。
- Windows系统:执行
尝试切换Ktor Client引擎
若CIO引擎存在兼容性问题,可切换为OkHttp引擎:
首先添加Gradle依赖:implementation("io.ktor:ktor-client-okhttp:$ktor_version")然后修改客户端代码:
val client = HttpClient(OkHttp) val response: HttpResponse = client.get("http://localhost:5173")
内容的提问来源于stack exchange,提问作者wolf
相关产品推荐
相关产品推荐

