2017-06-28 54 views
0

我們可以使用這樣的鏈嗎?NSURLProtocol鏈?

例如,我知道類似於abc://wwww.example.com的網址將由NSURLProtocol的子類處理。但它來自第三方庫,我沒有修改響應的源代碼。所以我提供了NSURLProtocol的另一個子類來處理像xyz://www.example.com這樣的網址。我能夠攔截並更改從abc到xyz的url。在我自己的startLoading()中,我將url從xyz更改爲abc,並使用NSURLSession將請求發送到abc://www.example.com,但出現錯誤,並且看起來像請求沒有通過第三方NSURPProtocol子類。

什麼建議嗎?

回答

0

NSURLProtocol子類僅在全球範圍內註冊爲NSURLConnection。對於NSURLSession,註冊是按會話進行的。

如果您想以影響第三方庫的方式註冊NSURLProtocol,我所知道的唯一方法是將NSURLSession上的所有會話創建方法調配到一起,並使用注入代碼你的自定義協議進入配置的方式。

+0

這是非常有用的 - 永遠不知道有這樣的區別。謝謝! – Rao

相關問題