Flutter:我应该如何访问此删除请求中的响应正文?

Posted

技术标签:

【中文标题】Flutter:我应该如何访问此删除请求中的响应正文?【英文标题】:Flutter: How am I supposed to access the response body in this Delete request? 【发布时间】:2021-09-09 12:01:23 【问题描述】:

我正在使用这段代码通过正文发出删除请求:

Future deleteAcc(data) async 
    Map<String, String> headers = 
      "Content-Type": "application/json",
      'Authorization': '$token'
    ;

    print('In Provider');
    final url = Uri.parse('$baseUrl$deleteUser');
    final req = http.Request("DELETE", url);
    req.headers.addAll(headers);
    req.body = jsonEncode(data);
    final resp = await req.send();
    return await resp.stream.bytesToString();

在函数调用中我想访问响应消息,通常我这样访问它:

await _bloc.deleteAcc(data).then((value) 
                    print(value.message);
                  );

但是当我在这个请求中使用它时,我收到了这个错误消息:

E/flutter ( 5868): [ERROR:flutter/lib/ui/ui_dart_state.cc(199)] Unhandled Exception: NoSuchMethodError: Class 'String' has no instance getter 'message'.
E/flutter ( 5868): Receiver: "\"code\":711,\"message\":\"list removed successfully\""
E/flutter ( 5868): Tried calling: message

请帮忙解决这个问题?

【问题讨论】:

尝试 print(value) 显然 value 是一个字符串,而不是本身具有消息字段的对象类型 @Muhtar 那么我如何从响应中访问消息或代码?? 【参考方案1】:

你应该解码收到的json:

Map<String, dynamic> temp = json.decode(value);

那么你就可以访问消息了:

String message = temp['message'];

【讨论】:

以上是关于Flutter:我应该如何访问此删除请求中的响应正文?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Flutter 中发出 API 请求

我如何对嵌套在flutter中的json发出发布请求?

Flutter Http Request 从 JSON 响应中删除重复项

如何使用flutter从firestore中删除/更新数组对象中的指定索引

如何删除 HttpClient 请求标头 C# 中的默认字符集

Flutter NetworkImage 处理 403 错误