gpt4 book ai didi

android - 承载 token 请求 http flutter

转载 作者:行者123 更新时间:2023-11-29 16:28:53 27 4
gpt4 key购买 nike

我需要为我的 API 发送我的 token 。我将我的 token 保存在 SharedPreferences 中,我可以恢复它。我的 API 需要一个,与 Bearer 但怎么办?

我测试了授权、Http 等

保存在SP中的方法

Future<bool> setToken(String value) async {
final SharedPreferences prefs = await SharedPreferences.getInstance();
return prefs.setString('token', value);
}

Future<String> getToken() async {
final SharedPreferences prefs = await SharedPreferences.getInstance();
return prefs.getString('token');
}

Future<Candidate> candidateAuth({Map map}) async {
String url = 'http://10.0.2.2:3000/v1/api/auth/candidate';
await http
.post(url,
headers: {
'Content-type': 'application/json',
'Accept': 'application/json'
},
body: jsonEncode(map))
.then((response) {
if (response.statusCode == 201) {
token = Candidate.fromJson(json.decode(response.body)).token;
Candidate().setToken(token);
return Candidate.fromJson(json.decode(response.body));
} else {
throw Exception('Failed auth');
}
});
}
}

我的 API 调用:


Future<List<Theme>> getThemes() async {
String url = 'http://10.0.2.2:3000/v1/api/theme';
String token;
Candidate().getToken().then((value) {
token = value;
});
final response = await http.get(url, headers: {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer $token',
});
print('Token : ${token}');
print(response);

if (response.statusCode == 200) {
List themesList = jsonDecode(response.body);
List<Theme> themes = [];
for (var themeMap in themesList) {
themes.add(Theme.fromJson(themeMap));
}
return themes;
} else {
throw Exception('Failed to load themes');
}
}

我的 API 返回错误 401:未经授权

最佳答案

token 可能不会在它调用 http.get 时设置。改成

    String token = await Candidate().getToken();
final response = await http.get(url, headers: {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer $token',
});
print('Token : ${token}');
print(response);

因此它肯定设置了正确的值。

关于android - 承载 token 请求 http flutter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58079131/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com