Flutter添加Authorization头触发HTTP POST请求解析异常问题
问题分析与解决方案
这不是http包的bug,问题大概率出在你的token内容不符合HTTP请求头的格式规范。
排查与解决步骤:
- 先打印获取到的
token内容,检查是否包含换行符、回车符、前后空格或其他控制字符。HTTP请求头的值不允许包含这类字符,一旦存在就会触发解析失败。 - 对token做清理处理,调用
trim()去掉前后空白字符:String token = (await auth.currentUser!.getIdToken()).trim(); - 确认
Authorization头的格式完全正确:"Bearer " + token,中间必须有且仅有一个空格,不能多也不能少。 - 如果清理后仍有问题,可以手动把token复制到Postman中测试,验证token本身是否合法(比如是否过期、格式是否正确)。
你提到去掉Authorization头后服务器返回权限拒绝,这是正常现象,说明服务器确实需要该请求头完成身份验证,核心还是要解决token的格式问题。
内容的提问来源于stack exchange,提问作者Kvothe king
相关产品推荐
相关产品推荐

