比较HttpStatus.SC_OK和INT变量

时间:2013-03-15 22:42:40

标签: android apache-httpcomponents

我做了一个检查http服务器是否响应的方法。 我正在使用apache组件。

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;
}

问题出在比较线上:

if (HttpStatus.SC_OK == status)

即使BOTH(HttpStatus.SC_OK和状态变量)为200,它也不会进入条件......它甚至不会抛出异常。

我做错了什么?

感谢您的时间!

1 个答案:

答案 0 :(得分:1)

获取HTTP响应的状态代码。

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

告诉我这是否有帮助:)