2016-07-06 61 views
1

是否可以向現有的Okhttp實例添加/刪除認證者和/或攔截器?如果是,如何?Okhttp 3.x動態地添加/刪除認證者/攔截者

+1

嗯示例,API是相當說明:https://github.com/square/okhttp/wiki /攔截器#攔截器應用程序 它顯示瞭如何在okhttp實例創建期間添加攔截器。但是我無法找到一種方法來在未創建新實例的情況下添加它。 –

回答

2

不,這是不可能的。

但是,您可以從現有客戶端創建構建器,並對其進行更改。這將共享調度器,連接池等

OkHttpClient.Builder clientBuilder = client1.newBuilder(); 
clientBuilder.networkInterceptors().add(0, serviceInterceptor); 
OkHttpClient client2 = clientBuilder.build(); 

有用於調節客戶端的超時在Javadoc https://square.github.io/okhttp/3.x/okhttp/okhttp3/OkHttpClient.html

+0

問題是我通常通過依賴注入將okhttp創建爲單個實例對象,因此每次添加/刪除攔截器時都無法將單個實例與另一個「交換」。 –

+0

我猜OP是指「一個現有的Okhttp實例」 – Onheiron

+0

它可能不適合你,但它是答案。對不起,它不適合 –