2012-04-03 14 views
1

Webサービスに接続していて、HttpURLConnectionで接続タイムアウトと読み取りタイムアウトを設定していません。デフォルトの接続タイムアウトと読み取りタイムアウトは何ですか?それはAndroidの携帯電話に依存していますか?または、Android/Javaにタイムアウトのデフォルト値がありますか?接続タイムアウトと読み取りタイムアウトがデフォルト(無限)に設定されていても、要求タイムアウトを受信して​​いますか?

接続タイムアウト(getConnectTimeout())とタイムアウト(getReadTimeout())の値を取得しようとすると、0の値が返されますが、これは無限大と同じです。しかし、その値が0であっても、まだ要求タイムアウトエラーが発生していることがあります。したがって、その値は無限に等しいことはできません。誰かがこれについて私に啓発することはできますか?

答えて

3

調査は行っていますか?デフォルトはdocumentationで詳述されています。ここでは、関連する部品です:以来

ます。public void setConnectTimeout(int型のタイムアウト):APIレベル1

はこのURLConnectionインスタンスが指し示すリソースへの接続 を確立するためにミリ秒単位のタイムアウト値を設定します。 A 接続がこの時点で確立された にできなかった場合、SocketTimeoutExceptionがスローされます。 デフォルトは0で、無限の タイムアウトを表します。以来

ます。public void setReadTimeout(int型のタイムアウト):APIレベル1

は、リソースへの確立された接続の入力 ストリームから読み込むためのミリ秒単位のタイムアウト値を設定します。 A 接続がこの時点で確立された にできなかった場合、SocketTimeoutExceptionがスローされます。 デフォルトは0で、無限の タイムアウトを表します。

はまた、このノートがタイムアウトにあります:接続タイムアウトと 読み取りタイムアウト:

URLConnectionのは、二つのタイムアウトをサポートしています。デフォルトでは、操作はタイムアウトしません。

接続先のサーバーがクライアントをタイムアウトしている可能性があります。

+0

はい。だから私は混乱している。私は、デフォルトでタイムアウトが無限に設定されていることを知っています。それでも、私の要求はまだタイムアウトしています。私はそれが何となくタイムアウトしてはならないと予想しています。 – Arci

+0

ありがとう!さらなる調査の後、クライアントをタイムアウトしているのは確かにサーバーだということが分かりました。 O_O – Arci

+0

@Devin M:接続タイムアウトと読み取りタイムアウトに問題があります。タイムアウトが切れる前に期限切れになっているようです。この質問をご覧ください。この質問で私を助けてくれますか? http://stackoverflow.com/questions/12650127/sockettimeoutexception-before-the-connect-and-read-timeout-expires – Ashwin

0

オブジェクトリターンゼロからgetConnectTimeoutgetReadTimeout場合は、その確かは無限大を意味しません。これは、基になるURLConnectionクラスから継承されます。

は、それはあなたが受け取っている例外はSocketTimeoutExceptionがすべてで、あなたはこのことを確認する必要がありませんであることかもしれ - タイムアウト設定に関係なく投げIOExceptionを取得することが可能です。

0

connect()のJavadocは間違っています。ゼロはプラットフォームの接続タイムアウトを与えます。これは無制限ではなく、約1分です。 timeoutパラメータをconnect(),に増やすことなく、この値を減らすことができます。

関連する問題