Каковы значения по умолчанию для времени ожидания подключения и сокета в DefaultHttpClient на Android? - PullRequest
16 голосов
/ 10 февраля 2012

На 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 значения по умолчанию для этих двух тайм-аутов, но не смог найти. Кто-нибудь знает, каковы значения по умолчанию для этих тайм-аутов? Я хотел бы получить ссылку на источники, в которых установлены значения, или официальный документ по этому вопросу (вместо того, чтобы просто узнать мнение).

Ответы [ 2 ]

11 голосов
/ 03 декабря 2013

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

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 голосов
/ 10 февраля 2012

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

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"));

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

...