Flutter移动设备无法向本地Express Web API发起请求求助
Flutter应用无法连接本地Express服务器的解决办法
我在本地localhost:3000搭建了基于express-generator-typescript的Express服务器,浏览器访问正常,但移动设备上的Flutter应用发送GET请求时出现以下错误:
ClientException with SocketException: Connection refused (OS Error: Connection refused, errno = 111), address = localhost, port = 53050, uri=http://localhost:3000
以下是解决方法:
用电脑局域网IP替换localhost:确保移动设备和电脑连同一WiFi,查电脑的局域网IP(Windows运行
ipconfig,macOS/Linux运行ifconfig或ip addr),把Flutter请求地址改成http://[你的局域网IP]:3000。让Express监听所有网卡:检查服务器代码,把监听语句改成
app.listen(3000, '0.0.0.0'),默认的localhost只接受本地请求,改成0.0.0.0才能接收局域网其他设备的请求。检查防火墙设置:临时关闭电脑防火墙,测试是否能连接,没问题后再设置允许3000端口的入站规则,避免后续拦截。
Android模拟器特殊处理:如果用Android模拟器,除了局域网IP,还可以把地址换成
10.0.2.2,这是模拟器专门指向宿主机的IP地址。
内容的提问来源于stack exchange,提问作者whatwhatwhat
相关产品推荐
相关产品推荐

