2017-04-11 123 views
0

如何更改我的OkHttpClient的讀取超時時間,但不是一般的,而是僅針對單個特定的請求?OkHttp設置讀取超時。 Android

我試圖通過攔截器來管理它,但攔截器不提供此功能。

+0

歡迎的StackOverflow!請閱讀用戶指南,瞭解如何在發佈問題之前提出一個好問題(http://stackoverflow.com/help/how-to-ask)謝謝 –

+0

請提供一些用於實現此目的的代碼,謝謝您。 –

+0

我沒有找到我需要的代碼 –

回答

-1

使用OkHttpClient.newBuilder()。從the official Javadoc

您可以使用newBuilder()自定義共享OkHttpClient實例。這將生成共享相同連接池,線程池和配置的客戶端。使用構建器方法爲特定目的配置派生客戶端。

他們的例子似乎做的正是你想要做什麼:

OkHttpClient eagerClient = client.newBuilder() 
    .readTimeout(500, TimeUnit.MILLISECONDS) 
    .build(); 
+0

該更改將影響所有請求 –

+0

@ P.Ilyin不,它不會。如果你使用'eagerClient'完成任何請求(如果你願意的話,這可能只是一個請求)將使用新的超時,但是你對現有'client'所做的任何請求都不會受到影響。 – nemetroid

+0

現在我明白了,你建議爲單獨的Api創建單獨的OkHttpClient,好的,應用。 –

0

你可以嘗試

OkHttpClient client = new OkHttpClient.Builder() 
.connectTimeout(10, TimeUnit.SECONDS) 
.writeTimeout(10, TimeUnit.SECONDS) 
.readTimeout(30, TimeUnit.SECONDS) 
.build(); 
+0

此代碼覆蓋整個應用程序的請求超時,而不是特殊的 –