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

A.e*_*deh 5 dart flutter dio

当我尝试解析我发出的网络请求的响应正文到 json 映射时,这是我仅在发布模式(奇怪)下遇到的错误。我写下了代码以及下面的错误堆栈跟踪。我应该提到的另一件奇怪的事情是,它只是有时会发生。并非一直如此。但对于我在市场上发布的应用程序,当我检查 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>
Run Code Online (Sandbox Code Playgroud)

我的代码:

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

E.B*_*ord 6

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

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

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

header('Content-Type: application/json');
Run Code Online (Sandbox Code Playgroud)

非常感谢上面的 Thiyraash David,他为我提供了解决问题所需的线索。