You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift中向WebService传递Header(Token)失败,请求代码排查协助

排查Token未送达WebService的问题

嘿,我一眼就发现了一个大概率导致问题的点——你的请求头字段名拼写错了!

1. 核心问题:Authorization字段拼写不完整

你的代码里写的是"Authorizatio...",明显没写完,HTTP标准的认证头字段名是Authorization,这绝对是Token没被服务器接收到的关键原因之一。

修正后的代码示例

let token = "eyJ0enssnsuwew"
// 用guard let安全解包URL,避免隐式解包的潜在崩溃
guard let url = URL(string: "http://webservice") else {
    print("无效的URL地址")
    return
}
var request = NSMutableURLRequest(url: url)
request.httpMethod = "POST"
request.setValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type")
// 修正字段名,确保完整拼写Authorization
request.setValue("Bearer \(token)", forHTTPHeaderField: "Authorization")

// 补充发送请求的示例(如果你的代码里没写全的话)
let task = URLSession.shared.dataTask(with: request as URLRequest) { data, response, error in
    if let error = error {
        print("请求错误:\(error)")
        return
    }
    // 处理响应逻辑...
}
task.resume()

2. 其他可能的排查方向

如果修正拼写后还是没解决问题,可以从这几个方向继续排查:

  • 抓包验证实际请求:用Charles、Wireshark或者Xcode的Network Inspector抓包,确认发送的请求里是否真的包含了Authorization头——有时候代码写了,但框架或代理可能会修改/移除请求头。
  • 检查URLSession配置:如果你自定义了URLSessionConfiguration,确认没有配置会自动覆盖或移除认证头的逻辑。
  • 服务器端解析逻辑:确认服务器端是否正确读取了Authorization头(虽然HTTP头不区分大小写,但严格匹配标准字段名更稳妥),有没有拦截认证头的中间件(比如反向代理)。
  • Token格式验证:确保Bearer 前缀后面没有多余的空格,Token本身没有拼写错误或过期。

先把拼写错误修正后测试一下,这应该能解决大部分问题,如果还有疑问,欢迎补充更多细节~

内容的提问来源于stack exchange,提问作者Russel Ramirez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 12:26:14