类型'_OneByteString'不是类型'Map <String,dynamic>'的子类型

时间:2020-08-04 08:05:45

标签: flutter dart dio

这是我仅在释放模式(奇怪)中遇到的错误,当我尝试解析我制作为json映射的网络请求的响应正文时。我放下代码以及下面的错误stacktrace。 我应该提到的另一件事是它有时仅会发生。并非一直如此。但是对于我在Firebase上查看崩溃报告时在市场上发布的应用程序,此错误也报告在此。 (虽然不会导致崩溃)

我应该提到我使用Dio软件包作为http客户端

更新: 我发现它有时会发生,但是当我反复发送相同的请求或其他请求时,它总是会发生。直到我退出应用程序并再次运行。

错误堆栈跟踪:

I/flutter (31714): type '_OneByteString' is not a subtype of type 'Map<String, dynamic>'
I/flutter (31714): #0      Server.getUser (package:mehrgan/data/network/server.dart:83)
I/flutter (31714): <asynchronous suspension>
I/flutter (31714): #1      Future.wait.<anonymous closure> (dart:async/future.dart:0)
I/flutter (31714): <asynchronous suspension>
I/flutter (31714): type '_OneByteString' is not a subtype of type 'Map<String, dynamic>'
I/flutter (31714): #0      Server.getCourses (package:mehrgan/data/network/server.dart:101)
I/flutter (31714): <asynchronous suspension>
I/flutter (31714): #1      Future.wait.<anonymous closure> (dart:async/future.dart:0)
I/flutter (31714): <asynchronous suspension>

我的代码:

Response response = await _dio.get('user/info');
Map<String, dynamic> json = jsonDecode(jsonEncode(response.data));

1 个答案:

答案 0 :(得分:1)

我在Dio客户端库中使用Dart / Flutter遇到了这个问题。

服务器端,我正在从PHP脚本请求数据。

我通过在PHP脚本中添加以下行来解决此问题:

header('Content-Type: application/json');

非常感谢上述的蒂亚拉什·大卫(Thiyraash David),他为我提供了解决问题所需的线索。