在我的应用程序中,我试图通过API登录用户,但我得到以下错误。
E/flutter (14103): [ERROR:flutter/lib/ui/ui_dart_state.cc(177)] Unhandled Exception: FormatException: Unexpected character (at character 1)
E/flutter (14103): <!DOCTYPE html>
E/flutter (14103): ^
E/flutter (14103):
E/flutter (14103): #0 _ChunkedJsonParser.fail (dart:convert-patch/convert_patch.dart:1404:5)
E/flutter (14103): #1 _ChunkedJsonParser.parseNumber (dart:convert-patch/convert_patch.dart:1271:9)
E/flutter (14103): #2 _ChunkedJsonParser.parse (dart:convert-patch/convert_patch.dart:936:22)
E/flutter (14103): #3 _parseJson (dart:convert-patch/convert_patch.dart:40:10)
E/flutter (14103): #4 JsonDecoder.convert (dart:convert/json.dart:505:36)
E/flutter (14103): #5 JsonCodec.decode (dart:convert/json.dart:156:41)
E/flutter (14103): #6 jsonDecode (dart:convert/json.dart:96:10)
E/flutter (14103): #7 FormBloc.login (package:curtain/blocs/form_bloc.dart:74:18)
在我之前的代码版本中,一切都工作成功。在我做了一些修改(包括添加验证器)之后,我的代码不工作了。下面你可以看到我的http请求:
static Future<dynamic> loginUser(String username, String password) async {
final result = await http.post('$baseURL/en/users/login/', headers: {
'Accept': 'application/json',
}, body: {
'username': username,
'password': password,
});
return result?.body;
}
我是这样称呼它的:
dynamic login(BuildContext context) async {
final res = await AuthService.loginUser(_username.value, _password.value);
final data = jsonDecode(res) as Map<String, dynamic>;
if (data['status'] != 200) {
addError(data['message']);
} else {
Navigator.of(context).push(
CupertinoPageRoute(
builder: (context) => FeedScreen(),
),
);
return res;
}
让我知道如果你需要看到我的json响应应该是
正如我所看到的,代码没有任何问题。要么你正在访问wrong URL
或者web服务有问题。请确保URL,并查看您访问的URL是否正确。
尝试在Postman中命中此api看看你得到的回应。你会更好地理解。