web-dev-qa-db-ja.com

AndroidのDefaultHttpClientの接続とソケットのタイムアウトのデフォルト値は何ですか?

Android 2.1 /2.2ではAndroid SDKにあるDefaultHttpClientを使用します。

Apacheは、ドキュメントで2つのタイムアウトがあると述べています。

  • CoreConnectionPNames.SO_TIMEOUT= 'http.socket.timeout':ソケットタイムアウト(SO_TIMEOUT)をミリ秒単位で定義します。これは、データを待機するためのタイムアウト、または言い換えると、2つの連続するデータ間の最大非アクティブ期間です。パケット)。ゼロのタイムアウト値は、無限のタイムアウトとして解釈されます。このパラメーターは、タイプJava.lang.Integerの値を想定しています。このパラメーターが設定されていない場合、読み取り操作はタイムアウトしません(無限タイムアウト)。

  • CoreConnectionPNames.CONNECTION_TIMEOUT= 'http.connection.timeout':接続が確立されるまでのタイムアウトをミリ秒単位で決定します。ゼロのタイムアウト値は、無限のタイムアウトとして解釈されます。このパラメーターは、Java.lang.Integer型の値を想定しています。このパラメーターが設定されていない場合、接続操作はタイムアウトしません(無限タイムアウト)。

Androidソースでこれら2つのタイムアウトのデフォルト値を検索しようとしましたが、見つかりませんでした。これらのタイムアウトのデフォルト値を知っている人はいますか?ソースへのリンクを取得したいのですが。値が設定されている場所、またはこれに関する公式ドキュメント(意見を聞くためだけではありません)。

16
Vit Khudenko

以下のコードセクションを試してみてください。

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
11
lucky1928

次のようなものを使用して、デフォルト(または設定されている値)を取得することはできませんか?

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

本当にデフォルト値が何であるかを知りたい場合(自分で値を設定するのではなく)、一見の価値があります。

2
Marvin Pinto