我正试图将承载令牌和刷新令牌传递到Flutter中的端点,但无论我尝试什么,我都会出错。api端点确实与Postman一起工作并返回一个新令牌,所以问题是与Flutter有关。
Future<List<PetsList>> fetchPets(http.Client client) async {
var _headers = {
'Content-Type': 'application/json',
'token': singleton.token,
'refreshToken': singleton.refreshToken,
};
var encodedHeader = json.encode(json.encode(_headers));
final response = await client.post(
Uri.parse(baseUrl + '/account/refreshtoken'),
headers: encodedHeader);
print("${response.body}");
};
这抛出了一个错误并声明"参数类型'String'不能分配给参数类型'Map<String,>?'">
所以我追加了encodedHeader作为Map<String,>在响应
中encodedHeader as Map<String, String>
但随即抛出另一个错误"_CastError(类型'String'不是类型'Map<String,>'的子类型)">
最后是响应。当我尝试简单地
时抛出错误print("${response.body}");
并声明"对象引用未设置为对象的实例"。
无论我尝试了什么,Flutter抱怨这个,我似乎在这个问题上兜圈子,可以使用一些帮助。
标题需要一个map<string,>如果你对它进行json编码,那么它就变成了一个字符串。请删除编码
Future<List<PetsList>> fetchPets(http.Client client) async {
Map<String, String> _headers = {
'Content-Type': 'application/json',
'token': singleton.token,
'refreshToken': singleton.refreshToken,
};
final response = await client.post(
Uri.parse(baseUrl + '/account/refreshtoken'),
headers: _headers);
};