2012-09-12 54 views
7

我正在開發一個iOS應用程序,它向Web服務器發出頻繁的請求,並且我正在使用AFNetworking(我非常喜歡)。但是,我遇到了一個我無法解決的授權問題。授權標題未使用AFNetworking發送

服務器要求我提供一個授權頭以獲得我想要的響應。具體來說,授權頭應該是像這樣:

Authorization = "ApiKey some-user-name:someNumericalApiKey" 

我使用AFNetworking整個項目,一切工作正常,但這個授權問題。我正在使用以下代碼:

[myClient setDefaultHeader:@"Authorization" value:@"ApiKey some-user-name:someNumericalApiKey"]; 

其中myClient指向AFHTTPClient對象。奇怪的是,當我使用AFHTTPRequestOperationLogger在XCode中記錄請求時,記錄器聲稱我擁有正確的標題集。但是,授權頭似乎無法到達服務器 - 我無法在服務器日誌中看到它。

找出問題,我試着用好老NSURLRequest,以及curl作出完全相同的請求,requests庫在Python - 所有這些做工精細,即授權頭中發送&收到(即我可以在服務器日誌中看到它),服務器響應是它應該是。

如果有人遇到同樣的問題(並已找到解決方案),我非常感謝您的來信。

謝謝。

+0

被擊中的服務是Heroku上的Django應用程序。 – Khandelwal

+0

今天我遇到了同樣的問題。很奇怪。 –

+0

任何解決方案!? – bpn

回答

0

如果您手動構建您的操作,那麼defaultHeaders不適用,這可能是您的問題的原因。

2

有時(特別是在Django中),這是由重定向消除頭參數引起的。例如,/ Object在後臺重定向到/ Object /並在切換期間刪除必要的auth參數。

如果您使用AFNetworkActivityLoggerAFLoggerLevelDebug級別,那麼你應該能夠在控制檯中檢查出來。如果您看到帶有/ Object的POST請求和/ Object /的響應,那麼這可能表示發生重定向剝離。

+0

這個答案是正確的答案。參考:https://github.com/AFNetworking/AFNetworking/issues/2116 – TharakaNirmana

相關問題