无法通过client.post发送报头信息



我正试图将承载令牌和刷新令牌传递到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);

};

相关内容

  • 没有找到相关文章

最新更新