我在颤动中遇到一个奇怪的错误,只需添加授权标头就可以让我出错。
我目前遇到的问题,
postData(data, apiUrl) async {
var fullUrl = _url + apiUrl;
var at = await _accessToken;
print('access token is $at');
return await http.post(
Uri.parse(fullUrl),
body: jsonEncode(data),
encoding: Encoding.getByName("utf-8"),
headers: {
'Authorization': 'Bearer $at', <---------------- Adding this line of code prints an error in the console
'Content-Type': 'application/json',
'Accept': 'application/json'
},
);
在我的代码中,如果我Authorization
在上面的代码中添加我用箭头指向的标题,我会在控制台上收到一条错误消息,
D/libc-netbsd(32217): [getaddrinfo]: mtk 主机名=host_name_i_provided;服务名称=(空);缓存模式=(空),netid=0;标记=0;app_uid=10217; ai_addrlen=0;ai_canonname=(null); ai_flags=1024;ai_family=0 D/libc-netbsd(32217): getaddrinfo: host_name_i_provided 从代理获取结果 >> E/flutter (32217): [ERROR:flutter/lib/ui/ui_dart_state.cc(199)] 未处理的异常:FormatException: Unexpected字符(第 3 行,字符 1) E/flutter (32217): E/flutter (32217): ^ E/flutter (32217): E/flutter (32217): #0 _ChunkedJsonParser.fail (dart:convert-patch/ convert_patch.dart:1404:5) E/flutter (32217): #1
_ChunkedJsonParser.parseNumber (dart:convert-patch/convert_patch.dart:1271:9) E/flutter (32217): #2
_ChunkedJsonParser.parse (dart: convert-patch/convert_patch.dart:936:22) E/flutter (32217): #3
_parseJson (dart:convert-patch/convert_patch.dart:40:10) E/flutter (32217): #4 JsonDecoder.convert (dart:convert/json.dart:506:36) E/flutter (32217): #5 JsonCodec.decode (dart:convert/json.dart:157:41) E/flutter (32217): #6
_RescueMeFormPageState.submitData (package:redcross/Pages/Disaster/rescue_me_form_page.dart:57:21) E/flutter (32217 ): E/颤振 (32217):
但是,如果我删除该标头,我会得到以下有效响应,
I/flutter (32217): {status: 400, data: {code: TokenException, message: Authorization Token not found}}
我不知道为什么我会收到这个错误。
我想指出的还有一些事情是,该$at
变量包含正确的访问令牌。我通过添加打印语句验证了这一点。所以这行代码'Authorization': 'Bearer $at',
是有效的。
此外,如果我从邮递员那里提出相同的请求,我会得到有效的回复。
有人可以帮我找出解决此错误的方法。谢谢.....