我有 Laravel 端点。登录、注册和主页(其中 getData() 将起作用)。
注册 API 和登录 API 工作正常,但问题在于 HomePage API,它不会询问用户详细信息,它是一个 get 方法,它将在检查用户是否登录时返回详细信息.
var token;
_getKey() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
token = prefs.getString('key');
print("this is Key $token");
}
saveKey(String key) async {
SharedPreferences prefs = await SharedPreferences.getInstance();
prefs.setString('key', key);
}
getData() async {
await _getCSRF();
await _getKey();
print(_setAuthHeaders());
String uri = "$baseUrlUser/user_bal";
try {
return await http.get(Uri.parse(uri), headers: _setAuthHeaders());
} catch (e) {
return e;
}
}
_setAuthHeaders() => {
'Accept': 'application/json',
'Connection': 'keep-alive',
'Authorization': 'Bearer $token',
};
请帮忙。
最佳答案
http
库自动将 header 名称转换为小写,可能您的服务器不接受小写 header 名称。
请按照以下步骤操作:
- 在外部库->Dart Packages->http-x.xx->src->io_client.dart中查找
io_client.dart
- 在
io_client.dart
中找到此代码(第 40 行)
request.headers.forEach((name, value) {
ioRequest.headers.set(name, value);
});
- 添加
preserveHeaderCase: true
request.headers.forEach((name, value) {
ioRequest.headers.set(name, value,preserveHeaderCase:true);
});
- 清理您的项目并重建
关于laravel - Flutter 中出现 401 未经授权的错误,但在 Postman 中工作正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73133740/