Rah*_*var 11 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);
}
Run Code Online (Sandbox Code Playgroud)
我正在配对的回应
{
"x_id": "home"
}
Run Code Online (Sandbox Code Playgroud)
但json.decode(response.data)正在抛出异常。
type '_InternalLinkedHashMap<String, dynamic>' is not a subtype of type 'String'
Run Code Online (Sandbox Code Playgroud)
奇怪的是,当我替换Dio为http.get(url)然后json.decode(response.body)以相同的响应完美运行时
sha*_*eep 25
您的响应数据已经是一个 Map,因此您可以简单地这样做:
var response = await dio.get(_url);
var responseBody = response.data;
print(responseBody);
Run Code Online (Sandbox Code Playgroud)
这是显式类型:
Response<Map> response = await dio.get(_url);
Map responseBody = response.data;
print(responseBody);
Run Code Online (Sandbox Code Playgroud)
小智 5
遵循这种方法 将响应作为字符串。现在你可以解码它......
Response<String> response = await DioUtils.getInstance().get(JSON_API);
List responseJson = json.decode(response.data);
return responseJson.map((m) => new User.fromJson(m)).toList();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13095 次 |
| 最近记录: |