Каковы значения по умолчанию для соединений и тайм-аутов сокетов в DefaultHttpClient на Android?

В Android 2.1/2.2 я использую DefaultHttpClient, найденный в Android SDK.

Apache говорит, что в своих документах есть 2 таймаута:

  • CoreConnectionPNames.SO_TIMEOUT= 'http.socket.timeout': определяет тайм-аут сокета (SO_TIMEOUT) в миллисекундах, который является тайм-аутом для ожидания данных или, по-разному, максимальным период бездействия между двумя последовательными пакетами данных). Значение таймаута, равное нулю, интерпретируется как бесконечный тайм-аут. Этот параметр ожидает значение типа java.lang.Integer. Если этот параметр не установлен, операции чтения не будут таймаутом (бесконечный тайм-аут).

  • CoreConnectionPNames.CONNECTION_TIMEOUT= 'http.connection.timeout': определяет тайм-аут в миллисекундах до тех пор, пока соединение не будет установлено. Значение таймаута, равное нулю, интерпретируется как бесконечный тайм-аут. Этот параметр ожидает значение типа java.lang.Integer. Если этот параметр не установлен, операции соединять не будут таймаутом (бесконечный тайм-аут).

Я попытался найти источники Android для значений по умолчанию для этих двух тайм-аутов, но не смог найти. Кто-нибудь знает, каковы значения по умолчанию для этих тайм-аутов? Я хотел бы получить ссылку на источники, где установлены значения или официальный документ на этом (а не только для того, чтобы услышать мнение).

Ответы

Ответ 1

Просто попробуйте ниже под секцией кода:

import android.net.http.AndroidHttpClient;
...
        AndroidHttpClient h = AndroidHttpClient.newInstance("My http client");
        // ...
        Log.d(TAG, "http.socket.timeout: " + h.getParams().getParameter("http.socket.timeout"));
        Log.d(TAG, "http.connection.timeout: " + h.getParams().getParameter("http.connection.timeout"));

Он работает на моем устройстве:

12-02 16:27:54.119 D/Exam(17121): http.socket.timeout: 60000
12-02 16:27:54.119 D/Exam(17121): http.connection.timeout: 60000

Ответ 2

Не могли бы вы получить значение по умолчанию (или любые значения), используя что-то вроде следующего:

DefaultHttpClient h;
// ...
Log.d(TAG, "http.socket.timeout: " +
      h.getParams().getParameter("http.socket.timeout"));
Log.d(TAG, "http.connection.timeout: "
      + h.getParams().getParameter("http.connection.timeout"));

Это стоит того, если вы действительно хотите знать, какие значения по умолчанию (в отличие от просто установки значений сами).