我做了一个检查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,它也不会进入条件......它甚至不会抛出异常。
我做错了什么?
感谢您的时间!
答案 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;
}
告诉我这是否有帮助:)