8

我们在后台模式下从服务器下载文件时遇到问题。在将请求重定向到另一台服务器时,HTTP头“授权”字段丢失。NSURLRequest在重定向请求时丢失HTTP头“授权”

我们做了一些实验,并注意到其他字段(甚至相同,但末尾带有下划线符号“Authorization_”)在重定向中完美工作。看起来这个字段根据一些安全原因被删除,如不同的服务器使用不同的验证数据。

有可能在前景模式中使用

URLSession:task:willPerformHTTPRedirection:newRequest:completionHandler: 

方法手动附加“授权”字段。我们尝试在后台模式下使用重定向请求时出现问题。因为根据文档“后台会话中的任务自动遵循重定向”

我找不到任何有关在RFC 2616中跳过此字段的任何信息,但假设可能存在一些未记录的解决方案,以便在后台模式重定向过程中保存“授权”字段。

让我假设我们的前端服务器可提供重定向响应某些特殊字段会说,重定向服务器是可信的,我们可以用“授权”现场没有任何修改。

这仅仅是一个想法,或许我们必须以其他方式使用它,请给我们指导吗?

回答

3

'授权'标题是一个来自'特殊'标题,建议不要修改。这是来自Apple的文档(LINK):

NSURLConnection类和NSURLSession类旨在为您处理HTTP协议的各个方面。其结果是,你不应该修改以下标题:

  • 授权
  • 连接
  • 主机
  • WWW验证
+0

谢谢你,拉法尔。我曾与WWDC实验室的Apple工程师就此问题进行了交流,他同意使用“Authorization_”等一些自定义字段(带下划线)是一个很好的解决方案。看起来像一个黑客,但它在预期的背景下工作 – gN0Me