2017-04-11 14 views
0

OkHttpClientの読み取りタイムアウトは、一般的ではなく単一の特定の要求に対してのみ変更できますか?OkHttp読み取りタイムアウトを設定しました。 Android

インターセプタで管理しようとしましたが、インターセプタはこの機能を提供していません。

+0

はStackOverflowのへようこそ!質問を投稿する前に、良い質問をする方法に関するユーザーのガイドラインをお読みください(ありがとうございます) –

+0

これを達成するために使用したいくつかのコードを記入してください、ありがとう。 –

+0

必要なコードが見つかりませんでした –

答えて

-1

使用OkHttpClient.newBuilder()を試すことができます。 the official Javadocから:

共有OkHttpClientインスタンスは、newBuilder()でカスタマイズできます。これにより、同じ接続プール、スレッドプール、および構成を共有するクライアントが構築されます。 Builderメソッドを使用して、特定の目的のために派生したクライアントを構成します。

彼らの例では、あなたがしようとしている正確に何をやっているようだ:

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

このコードは、アプリケーション全体の要求に対するタイムアウトを無効にします。 –

関連する問題