HttpStatus在API 22级别已经被弃用

43

通常我会使用RestClient类检查服务器不同的代码响应,如以下示例所示,使用org.apache.http.HttpStatus类:

if (HttpStatus.SC_OK == restClient.getResponseCode()) {
            //200 OK (HTTP/1.0 - RFC 1945)
            return true;
} else if (HttpStatus.SC_BAD_GATEWAY == restClient.getResponseCode()){
           //502 Bad Gateway (HTTP/1.0 - RFC 1945)
            return false;
}

但是根据官方文档,最近该类已自API 22级起被弃用。

该接口在API 22级中已被弃用。请使用openConnection()代替。请访问此网页以获取更多详细信息。

但是对我来说,使用OpenConnection()方法没有任何意义。

我的问题是:是否有其他方法可以在应用程序中不需要硬编码所有代码响应的情况下完成相同的功能?

提前致谢。


由于HttpClient已被弃用,请使用其他客户端进行http通信。我认为在代码中定义状态码没有任何问题。 - user468311
1
@IgorFilippov列出所有可能的“CodeResponses”是重复造轮子。查看已接受的答案以了解我的意思。 - Sami Eltamawy
1个回答

95
你可以将openConnection返回的值转换为HttpURLConnection类型,并使用getResponseCode()来获取响应码。
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
final int responseCode = urlConnection.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK) {

} else if (responseCode == HttpURLConnection.HTTP_BAD_GATEWAY) {

}

HttpURLConnection.getResponseCode() 的文档在这里


9
HttpURLConnection.HTTP_OK 正是我在寻找的。非常感谢。 - Sami Eltamawy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接