flutter - Api Request 使用 Http 请求获取 get 方法。但不知道 Flutter 中的实际问题
问题描述
我是颤振和学习 api 请求的新手。我请求获取方法。但它显示错误!我收不到任何数据!
在 Postman 中,它工作正常并且数据正确!
此 api 和 token 仅用于测试 porpuse!所以,别担心!
API 请求
Future fetchAlbum() async {
final token = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjI4OTksImlzcyI6Imh0dHBzOi8vcG9ydGFsLWFwaS5qb21ha2hhdGEuY29tL2FwaS9hdXRoL2xvZ2luIiwiaWF0IjoxNjMxMjUxNjYwLCJleHAiOjE2MzEzMzgwNjAsIm5iZiI6MTYzMTI1MTY2MCwianRpIjoiNlFEUTZCYnBMT0JhdUJoaSJ9.jAY_2nYxjgsIvXZY5vn0vAr_pwF6UBYbSGZ8wqD0YPQ';
final response = await http.get(
Uri.parse('https://portal-api.jomakhata.com/api/getLeaveDetails?token=${token}'),
// Send authorization headers to the backend.
);
final responseJson = jsonDecode(response.body);
if(response.statusCode==200){
print("ok");
print(responseJson);
}
else{
print("error!");
}
return responseJson;
}
控制台错误
D/EGL_emulation(19932): app_time_stats: avg=14700.05ms min=577.55ms max=28822.55ms count=2
E/flutter (19932): [ERROR:flutter/lib/ui/ui_dart_state.cc(199)] Unhandled Exception: FormatException: Unexpected character (at character 335)
E/flutter (19932): ...ning":14}],"fiscalYear":"2021-2022"}{"message":"SQLSTATE[22001]: String ...
E/flutter (19932): ^
E/flutter (19932):
E/flutter (19932): #0 _ChunkedJsonParser.fail (dart:convert-patch/convert_patch.dart:1404:5)
E/flutter (19932): #1 _ChunkedJsonParser.parse (dart:convert-patch/convert_patch.dart:869:48)
E/flutter (19932): #2 _parseJson (dart:convert-patch/convert_patch.dart:40:10)
E/flutter (19932): #3 JsonDecoder.convert (dart:convert/json.dart:506:36)
E/flutter (19932): #4 JsonCodec.decode (dart:convert/json.dart:157:41)
E/flutter (19932): #5 jsonDecode (dart:convert/json.dart:96:10)
E/flutter (19932): #6 fetchAlbum (package:test_list/main.dart:51:24)
E/flutter (19932): <asynchronous suspension>
E/flutter (19932):
解决方案
您正在调用的 API 端点中存在错误,更准确地说是存在 SQL 错误SQLSTATE[22001]: String data, right truncated: 1406 Data too long for column 'url' at row 1
。
因此,会在 JSON 输出中插入一条错误消息,如下所示:
}{
"message": ...
这不是 Postman 显示的问题,但结果你得到一个无效的 JSON,应该有一个,
between {
and }
。
所以当你尝试在 Flutter 中解码时,会报错,因为转换失败:Unhandled Exception: FormatException: Unexpected character
.
推荐阅读
- python - 如何动态重新渲染模板?
- elixir - Heroku CI,Phoenix,Elixir:'角色“postgres”不存在''psql:致命:数据库“u13792”不存在'
- java - Java:如何不允许变量低于 0
- python - 条件语句工作不正确-python
- android - Visual Studio NuGet 中 Xamarin.Android 的 Androidx 库
- javascript - 我如何检查
使用类元素为空?
- cmake - 是否有一个 cmake 选项来指定源二进制目录?
- javascript - 添加其他选项的隐藏输入字段的值
- python - Matlab 和 Python 中用于矩阵乘法和求幂的不同结果
- c++ - 如何通过从用户那里获取 n 并成对生成数字来制作 n*n 矩阵的输出文件?