CookieMonster CookieMonster - 3 months ago 89
Android Question

How do I set timeout for OkHttpClient?

I am working on a native android project (Java) testing on a physical device with android 4.4.2. My OkHttpClient websocket connects but times out after 10 seconds, this is what I am trying to use to change the timeout setting.

OkHttpClient client = new OkHttpClient();
client.setReadTimeout(0, TimeUnit.MILLISECONDS);


but it is saying
Cannot resolve method setReadTimeout(int, java.util.concurrent.TimeUnit)


These are my imports:

import android.util.Log;

import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import okhttp3.ResponseBody;
import okhttp3.ws.WebSocket;
import okhttp3.ws.WebSocketCall;
import okhttp3.ws.WebSocketListener;
import okio.Buffer;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.io.IOException;
import java.util.*;
import java.util.concurrent.TimeUnit;


and in my gradle file I have
compile 'com.squareup.okhttp3:okhttp-ws:3.4.1'

Answer

did you try with builder?

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

UPDATE

try compiling compile 'com.squareup.okhttp3:okhttp:3.4.1'

UPDATE 2

        OkHttpClient okHttpClient = new OkHttpClient.Builder().readTimeout(0, TimeUnit.MILLISECONDS).build();
Comments