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);
내가 스레드에서 실행하고 있습니다 :
나는 인터넷/서버 연결을 테스트 다음 코드를있다. 처음으로이 테스트를 실행하면 결과가 true로 표시되지만 동작이 무작위 인 경우 일부 오류가 발생하여 'host unreachable'오류가 발생하고 결과가 false로 표시됩니다.
저는 현재 구성된 Android 네트워크에서 서버에 연결할 수 있는지 테스트하고 싶습니다.
인터넷/서버 연결을 테스트 할 수있는 신뢰할 수있는 API가 있습니까?
업데이트 : 시험을 개시 한 기능에 따라 서비스에
.
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