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

Swift发起URL请求调用RapidAPI返回401未授权错误求助

问题根因

  • 最初版本的代码逻辑错误:你已经创建了配置了x-rapidapi-key的URLRequest对象,但调用downloadData方法时传入的参数是原始URL,而不是你配置好的请求对象。downloadData内部直接用传入的URL发起请求,完全没有带上你设置的请求头,所以服务端识别不到身份,返回401未授权。
  • 缺失必填请求头:对比RapidAPI提供的官方模板可以看到,该接口要求请求必须同时携带x-rapidapi-key和x-rapidapi-host两个请求头,你最开始的代码仅配置了key,没有配置host,也会触发401错误。

修复验证

你更新后的代码已经同时解决了以上两个问题:

  1. 新增了x-rapidapi-host请求头的配置
  2. 不再使用有问题的downloadData方法,直接将配置了完整请求头的URLRequest对象传入URLSession发起请求,当前版本的代码已经可以正常拉取接口数据。

可选排查项

如果更新后仍然出现问题,可以按顺序排查:

  • 检查请求头中填写的API Key是否有多余空格、字符错误
  • 确认你定义的Result模型结构和接口返回的JSON结构完全匹配,避免解码静默失败
  • 可以在状态码判断的位置打印返回的错误响应体,确认服务端返回的具体错误提示

内容的提问来源于stack exchange,提问作者Nursultan Yelemessov

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 10:15:04