2013-03-15 4 views
0

http 서버가 응답하는지 확인하는 방법을 만들었습니다. 아파치 구성 요소를 사용하고 있습니다.HttpStatus.SC_OK 및 INT 변수 비교

private static int CheckAvailabilityHttp(String pHostName, int pPort) 
{ 
    try { 
     HttpClient httpClient = new DefaultHttpClient(); 
     HttpGet httpGet = new HttpGet(String.format("http://%s:%s",pHostName,pPort)); 
     HttpResponse response = httpClient.execute(httpGet); 
     int status = response.getStatusLine().getStatusCode(); 
     if (HttpStatus.SC_OK == status) { // HttpStatus.SC_OK is 200 and status is 200 
      return ServerStatuses.SUCCESS; 
     } 
    } catch (MalformedURLException e1) { 
     e1.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 

    return ServerStatuses.FAILED; 
} 

문제는 비교 라인에 : 심지어 BOTH (HttpStatus.SC_OK 및 상태 변수)이다 (200)하지만, 그것은 나던 조건 내에서 얻을 ... 그것은 '아무튼

if (HttpStatus.SC_OK == status) 

심지어 예외를 던지십시오.

내가 뭘 잘못하고있어 ??

감사합니다.

+2

당신에게 모두 200입니다 절대적으로 확신 말해? 디버깅하여 두 값을 모두 보았습니까? – kabuko

답변

1

HTTP 응답의 상태 코드를 가져옵니다. 이 도움이된다면 :

final int statusCode = getResponse.getStatusLine().getStatusCode(); 
if (statusCode != HttpStatus.SC_OK) { 
    Log.w(getClass().getSimpleName(), "Error " + statusCode + " for URL " + url); 
    return null; 
}