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 Http Request 从 JSON 响应中删除重复项
如何使用flutter从firestore中删除/更新数组对象中的指定索引