android - DIO 响应解码问题

标签 android json http dart flutter

我正在使用 Dio 来发出 HTTP 请求

  var dio = Dio();
    var response =
        await dio.get(URL);
    final responseBody = json.decode(response.data);

    final statusCode = response.statusCode;

    if (statusCode != 200 || responseBody == null) {
      print("status code:$statusCode");
      throw new ServerExceptionHandler(
          "An error ocurred : [Status Code : $statusCode]", statusCode);
    }

A response I am paring

{
"x_id": "home"
}

但是 json.decode(response.data) 抛出异常。

type '_InternalLinkedHashMap<String, dynamic>' is not a subtype of type 'String'

奇怪的是,当我将 Dio 替换为 http.get(url) 时,json.decode(response.body) 完美运行同样的 react

最佳答案

您的响应数据已经是一个 map ,因此您可以简单地这样做:

var response = await dio.get(_url);
var responseBody = response.data;
print(responseBody);

这是显式类型:

Response<Map> response = await dio.get(_url);
Map responseBody = response.data;
print(responseBody);

关于android - DIO 响应解码问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54366431/

相关文章:

javascript - 错误 : request entity too large

javascript - 为什么单击过滤器按钮时我的网页会卡住?

c# - 在 ASP.NET MVC 中,在 Controller 的操作方法之前或之中反序列化 JSON

java - 内容编码是否设置为 UTF-8 无效?

android - 为什么将 Dagger 与 Android 架构组件一起使用

ruby - 无法用 ruby​​ 解析 json

java - 访问 Endpoint.publish 的网络服务器

java - Android 语音识别器自动停止 - 需要像 Google Bolo App 一样实现

java - 尝试从网站获取网页时访问被拒绝

android - 如何将数据库适配器传递给另一个 Activity ?