Ответ 1
- Там нет волшебной ценности и зависит от ожиданий на вашем сервере. Если кто-то говорит вам, что 5s - хорошее значение, и у вас на среднем уровне 8s на одной из ваших конечных точек при максимальном времени загрузки, тогда 8s не работает для вас. Как общие значения, я видел, что ниже 10s считается коротким и между 10 и 20 годами являются общими.
- По OkHttp 3.4.1 и Retrofit 2.1.0, значение по умолчанию для OkHttp составляет 10 секунд. "Дооснащение" зависит от значения по умолчанию OkHttp.
Отредактируйте фрагмент кода: (если вы не предоставляете OkHttpClient):
okhttp3.Call.Factory callFactory = this.callFactory;
if (callFactory == null) {
callFactory = new OkHttpClient();
}
фрагмент кода OkHttp:
connectTimeout = 10_000;
readTimeout = 10_000;
writeTimeout = 10_000;
- Единственное приложение Google, к которому я имею доступ, - это Google IO.
Они используют разные значения. Например, для feedback они используют:
public class FeedbackConstants{
public static final int FEEDBACK_CONNECT_TIMEOUT_MS = 15000;
public static final int FEEDBACK_READ_TIMEOUT_MS = 15000;
public static final int GOOGLE_API_CLIENT_CONNECTION_TIMEOUT_S = 10;
}
Они используют Volley, и вы можете посмотреть в некоторых таймаутах там. И да, они выглядят короткими.
/** The default socket timeout in milliseconds */
public static final int DEFAULT_TIMEOUT_MS = 2500;
В другом http-клиенте они дают вам несколько подсказок о том, что они считают коротким и разумным коротким таймаутом.
/**
* Default 2s, deliberately short. If you need longer, you should be using
* {@link AsyncHttpClient} instead.
*/
protected int connectionTimeout = 2000;
/**
* Default 8s, reasonably short if accidentally called from the UI thread.
*/
protected int readTimeout = 8000;