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

iOS中URLSession发送GET请求返回403,但使用相同Token在Postman中可正常工作

iOS中URLSession发送GET请求返回403,但使用相同Token在Postman中可正常工作

嗨,这种情况我之前踩过好几次坑,给你几个实用的排查方向,应该能找到问题所在:

  • 仔细核对Authorization头的格式细节:一定要确保头的格式是Bearer <token>,这里的关键是Bearer后面必须有一个空格,而且很多后端对Bearer的大小写敏感(必须是首字母大写)。你可以在代码里把请求的所有headers打印出来,或者用断点查看URLRequest的allHTTPHeaderFields,确认和Postman里的头完全一致,别漏了空格或者写错大小写。

  • 补全Postman默认携带的请求头:Postman会自动添加一些默认头,比如Accept: application/json或者Content-Type: application/json,有些后端服务会要求这些头存在才会正常处理认证。你可以打开Postman的请求详情,查看完整的headers列表,把那些Postman里有但你iOS代码里没加的头也加上试试。

  • 确认Token没有被意外篡改:有时候从本地存储(比如UserDefaults)读取Token时,可能会不小心带入换行符、空格或者转义字符,导致Token和Postman里的不一致。你可以把代码中使用的Token字符串直接打印出来,和Postman里的Token逐字符对比,确保完全相同。

  • 检查URLSession的配置冲突:如果你用了自定义的URLSessionConfiguration,要注意httpAdditionalHeaders里的内容会不会覆盖你手动添加的Authorization头。比如有些配置默认加了Authorization相关的内容,会把你的自定义头冲掉。可以试试用全新的默认配置创建URLSession,排除这个可能性。

  • 抓包对比完整请求:最直接的方法是用Charles或者其他抓包工具,把iOS发送的请求和Postman的请求抓下来,对比两者的URL、headers、请求方法等所有细节。很多时候问题就藏在这些容易忽略的细节里,比如URL里的参数编码不一致,或者某个头的键名拼写错误。

备注:内容来源于stack exchange,提问作者GiangHoGoVap

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.13 17:03:10