Dio在Flutter Mac桌面应用无法发起HTTP请求,报错SocketException
Mac桌面端Dio无法发起HTTP请求的解决方案
这不是Dio不兼容桌面平台的问题,报错信息里的errno = 1(操作不被允许)是Mac应用的网络权限未授权导致的,以下是具体解决步骤:
添加网络权限配置
在Mac应用的Info.plist文件中插入以下配置:<key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key> <true/> </dict> <key>NSNetworkUsageDescription</key> <string>需要网络权限连接服务器获取数据</string>若服务器使用标准HTTPS(如报错中的443端口),也可以更精准地配置允许特定域名访问,直接设置
NSAllowsArbitraryLoads为true可快速验证问题。检查系统网络权限
打开Mac「系统设置」→「隐私与安全性」→「网络」,确认你的应用已被勾选允许网络访问。若列表中无该应用,重启应用后再次检查。清理缓存并重构应用
执行以下命令清理Flutter缓存并重新构建Mac版本:flutter clean flutter build macos
Dio本身完全支持Mac桌面平台,这类问题基本都是Mac权限配置或系统限制导致的,和框架兼容性无关。
内容的提问来源于stack exchange,提问作者Onalo Joseph
相关产品推荐
相关产品推荐

