8

我們在後臺模式下從服務器下載文件時遇到問題。在將請求重定向到另一臺服務器時,HTTP頭「授權」字段丟失。NSURLRequest在重定向請求時丟失HTTP頭「授權」

我們做了一些實驗,並注意到其他字段(甚至相同,但末尾帶有下劃線符號「Authorization_」)在重定向中完美工作。看起來這個字段根據一些安全原因被刪除,如不同的服務器使用不同的驗證數據。

有可能在前景模式中使用

URLSession:task:willPerformHTTPRedirection:newRequest:completionHandler: 

方法手動附加「授權」字段。我們嘗試在後臺模式下使用重定向請求時出現問題。因爲根據文檔「後臺會話中的任務自動遵循重定向」

我找不到任何有關在RFC 2616中跳過此字段的任何信息,但假設可能存在一些未記錄的解決方案,以便在後臺模式重定向過程中保存「授權」字段。

讓我假設我們的前端服務器可提供重定向響應某些特殊字段會說,重定向服務器是可信的,我們可以用「授權」現場沒有任何修改。

這僅僅是一個想法,或許我們必須以其他方式使用它,請給我們指導嗎?

回答

3

'授權'標題是一個來自'特殊'標題,建議不要修改。這是來自Apple的文檔(LINK):

NSURLConnection類和NSURLSession類旨在爲您處理HTTP協議的各個方面。其結果是,你不應該修改以下標題:

  • 授權
  • 連接
  • 主機
  • WWW驗證
+0

謝謝你,拉法爾。我曾與WWDC實驗室的Apple工程師就此問題進行了交流,他同意使用「Authorization_」等一些自定義字段(帶下劃線)是一個很好的解決方案。看起來像一個黑客,但它在預期的背景下工作 – gN0Me