私はHttpGetを使用してpingを実装しようとしていますが、動作はランダムです。HttpGet Android APIのランダムな動作
私は、インターネット/サーバ接続をテストする次のコードを持っています:それは時間がかかることがありますように私はスレッドで実行しているコードの上
boolean result = false;
HttpGet request = new HttpGet("www.MyServer.com");
HttpParams httpParameters = new BasicHttpParams();
HttpClient httpClient = new DefaultHttpClient(httpParameters);
try
{
HttpConnectionParams.setConnectionTimeout(httpParameters, 6000);
HttpConnectionParams.setSoTimeout(httpParameters, 6000);
HttpResponse response = httpClient.execute(request);
int status = response.getStatusLine().getStatusCode();
if (status == HttpStatus.SC_OK)
{
result = true;
}
}
catch(Exception e)
{
e.printStackTrace();
result = false;
}
Log.d("App", "Ping Result:"+result);
を。 初めてこのテストを実行すると、結果は真ですが、動作がランダムになった後、「ホスト到達不能」というエラーが表示され、結果がfalseになることがありました。
私はちょうどサーバが現在設定されているAndroidネットワークから到達可能であることをテストしたいです。
インターネット/サーバー接続をテストするための信頼できるAPIはありますか?
UPDATE:私はテストを開始機能を以下しているサービスで
。
void startTest()
{
ServerTestThread mServerTestThread = new ServerTestThread()
mServerTestThread.start();
}
class ServerTestThread extends Thread
{
boolean result = false;
public void run()
{
//HttpGet code
//Send Message TO GUI Thread with result.
}
}
startTest
上記の関数のテストスレッドのインスタンスを作成し、スタート機能を呼び出しています。テストが終了したら、結果を含むメインスレッドにメッセージを送ります。
ありがとうございました。
おかげで、それは最初の時間のために働く理由:
あなたのマニフェストにこの権限が必要になります。タイムアウトが少ない場合は、初めて失敗することもあります。このコードがスレッドで呼び出されているので、何らかのクリーンアップを追加する必要がありますか? – User7723337
スレッドを実行する方法を見るので、コードを投稿できますか? – Caner
最新の質問をご覧ください。 – User7723337