【发布时间】:2019-05-24 18:53:08
【问题描述】:
对于网络连接,我使用dio 并从Connectivity 检查连接状态。
在这里我检查网络状态:
@override
Widget build(BuildContext context) {
bloc.checkConnectivity(Connectivity());
return StreamBuilder(
stream: bloc.getInitApp,
builder: (context, AsyncSnapshot<InitApp> initApp) {
if (initApp.hasData) {
return prepareMain(initApp.data);
} else {
return Center(
child: CircularProgressIndicator(),
);
}
});
}
checkConnectivity方法:
checkConnectivity(Connectivity _connectivity) {
_connectivity.onConnectivityChanged.listen((ConnectivityResult result){
if (result == ConnectivityResult.mobile ||
result == ConnectivityResult.wifi) {
fetchInitApp();
}
});
}
但最终,App 仅在 Android 设备上运行,但在 iOS(设备/模拟器)上出现此错误:
Error connecting to the service protocol: HttpException: , uri = http://127.0.0.1:1024/ws
我尝试在没有Connectivity 的情况下调用Api,并且该应用程序运行良好,但它仅在Android 中获取数据,对于iOS 仍然存在问题。
同样,Dart http package 也会发生这种情况。
编辑 1:2019 年 9 月 25 日
This has nothing to do with codes!
The problem is the system WiFi connection.
当您遇到此问题时,请使用此临时解决方案,直到提供完整的解决方案:
- 断开系统 WiFi
- 拔掉你的手机
- 将您的系统重新连接到 WiFi
- 插上你的手机
- 运行应用程序
【问题讨论】:
-
我也有这个问题。我想知道,您是否将 Firebase 用于此应用中的任何内容?
-
不@Kirby,只是简单的
http connection,我真的知道为什么会发生这种情况,它发生在所有设备上还是仅在iOS上? -
三星 Galaxy S10 (API 10) Genimotion 的模拟器上总是发生这个错误。
标签: android ios dart flutter httpexception