2016-06-02 16 views
0

Rest Templateを使用してログイン中にRest Webサービスを呼び出しています。サービスをホストしているサーバーがアクティブではありませんでした。ログインしようとしましたが、時間がかかって例外がスローされましたが失敗しました。I/Oエラーを処理する方法:/10.0.2.2(ポート8080)への接続に失敗しました:接続に失敗しました:非同期タスク内でETIMEDOUT(接続タイムアウト)

私はタイマーを設定したい、例えば: - 30秒。 AsyncTaskのdoInBackground()が実行を完了していない場合は、キャンセルしてメッセージを表示し、サーバーを使用できません。後で再試行してください。

CountDownTimerこれを実現するためにcancel()と呼んだが、ほぼ達成できたが、何か間違っていると感じている。タイムアウトの後、doInBackground()は停止しないので、バックグラウンドで実行を継続し、postExecute()の内部にログメッセージセットを出力します。

誰でもこれを達成する方法を提案できますか?

答えて

0

RestTemplateを設定するには、timeout

// If using OkHttp, use OkHttpRequestFactory 
HttpComponentsClientHttpRequestFactory clientHttpRequestFactory = new HttpComponentsClientHttpRequestFactory(); 
clientHttpRequestFactory.setConnectTimeout(20000); 
clientHttpRequestFactory.setReadTimeout(20000); 
RestTemplate testTemplate = new RestTemplate(clientHttpRequestFactory); 

を設定し、することができますすることができますtry/catch例外ネットワークを作ることは、ユーザーにメッセージを表示するために呼び出します。

+0

ありがとうございました。これが助けになりました。 – Moiz

関連する問題