[解決済み] JavaでAndroidのHttpResponseのタイムアウトを設定する方法
2022-03-17 18:25:28
質問
接続状態を確認するために、以下のような関数を作成しました。
private void checkConnectionStatus() {
HttpClient httpClient = new DefaultHttpClient();
try {
String url = "http://xxx.xxx.xxx.xxx:8000/GaitLink/"
+ strSessionString + "/ConnectionStatus";
Log.d("phobos", "performing get " + url);
HttpGet method = new HttpGet(new URI(url));
HttpResponse response = httpClient.execute(method);
if (response != null) {
String result = getResponse(response.getEntity());
...
テストのためにサーバーをシャットダウンすると、実行は次の行で長い時間待機します。
HttpResponse response = httpClient.execute(method);
待ち時間が長くならないようにタイムアウトを設定する方法をご存知の方はいらっしゃいますか?
ありがとうございます。
解決方法は?
私の例では、2つのタイムアウトが設定されています。接続タイムアウトは
java.net.SocketTimeoutException: Socket is not connected
とソケットタイムアウト
java.net.SocketTimeoutException: The operation timed out
.
HttpGet httpGet = new HttpGet(url);
HttpParams httpParameters = new BasicHttpParams();
// Set the timeout in milliseconds until a connection is established.
// The default value is zero, that means the timeout is not used.
int timeoutConnection = 3000;
HttpConnectionParams.setConnectionTimeout(httpParameters, timeoutConnection);
// Set the default socket timeout (SO_TIMEOUT)
// in milliseconds which is the timeout for waiting for data.
int timeoutSocket = 5000;
HttpConnectionParams.setSoTimeout(httpParameters, timeoutSocket);
DefaultHttpClient httpClient = new DefaultHttpClient(httpParameters);
HttpResponse response = httpClient.execute(httpGet);
既存のHTTPClient(例:DefaultHttpClientやAndroidHttpClient)のパラメータを設定したい場合は、以下の関数を使用します。 setParams() .
httpClient.setParams(httpParameters);
関連
-
サーブレットクラスのインスタンス化エラーの解決法
-
javaでよく使われる英単語
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] Androidのソフトキーボードをプログラムで閉じる/隠すにはどうすればよいですか?
-
[解決済み] Java Mapの各エントリを効率的に反復処理するには?
-
[解決済み] Javaでメモリーリークを発生させるにはどうしたらいいですか?
-
[解決済み] JavaでStringをintに変換するにはどうしたらいいですか?
-
[解決済み] Androidでアクティビティ起動時にEditTextにフォーカスが当たらないようにする方法
-
[解決済み] Java で、あるコンストラクタを別のコンストラクタから呼び出すにはどうすればよいですか?
-
[解決済み】Android UserManager.isUserAGoat()の正しい使用例?)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
スレッド "main "での例外をEclipseで解決 java.lang.Error: 未解決のコンパイル問題、コンパイラとパッケージの不整合
-
Java のエラーです。未解決のコンパイル問題 解決方法
-
myeclipseでコンパイルするとAntエラーが発生する javaの例外が発生しました。
-
javaで非静的な解を静的な参照にすることができない
-
eclipseにプロジェクトをインポートした後、Editorにmain typeが含まれない問題
-
Java コンパイルエラー - スレッド "main" で例外 java.lang.Error: 未解決のコンパイル問題です。
-
linux run jarfile Invalid or corrupt jarfile error.
-
SocketTimeoutExceptionの解決方法です。読み込みがタイムアウトした
-
ローカルリソースのロードが許可されていない場合の解決策
-
[解決済み】Volleyのタイムアウト時間を変更する。