Dart中get请求调用接口失败,报SocketException错误求助
解决方案
针对你遇到的SocketException错误(错误号=1,操作不允许),可以从以下几个方向排查解决:
检查URL拼写:错误信息中显示请求地址是
aged-cherry-5206.fly.def,但你的代码里是fly.dev,确认是否是请求时的域名拼写错误,这会导致DNS解析失败。先在浏览器中访问https://aged-cherry-5206.fly.dev/sum?one=43&two=-1,确认服务是否可正常访问。Android平台添加网络权限:如果是在Android应用中运行,需要在
android/app/src/main/AndroidManifest.xml里添加网络权限:
<uses-permission android:name="android.permission.INTERNET" />
注意要把这个权限标签放在<application>标签外面。
- iOS平台配置ATS:iOS默认的App Transport Security可能限制了请求,若域名证书无问题,可在
ios/Runner/Info.plist中添加针对fly.dev的ATS例外配置:
<key>NSAppTransportSecurity</key> <dict> <key>NSExceptionDomains</key> <dict> <key>fly.dev</key> <dict> <key>NSIncludesSubdomains</key> <true/> </dict> </dict> </dict>
如果是测试环境,也可以临时全局放开ATS(不推荐生产环境使用):
<key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key> <true/> </dict>
检查网络环境:确认你的设备没有处于严格的防火墙、代理或VPN环境中,这些可能会阻止对目标域名的连接。
确认代码执行环境:确保你的
await get(url)代码是在异步函数(标记了async)中执行的,并且已经正确导入了package:http/http.dart包。
内容的提问来源于stack exchange,提问作者Ami
相关产品推荐
相关产品推荐

