Android: Cách lấy mã trạng thái của một yêu cầu HttpClient


90

Tôi muốn tải xuống một tệp và cần kiểm tra mã trạng thái phản hồi (tức là HTTP /1.1 200 OK). Đây là một đoạn mã của tôi:

HttpGet httpRequest = new HttpGet(myUri);
HttpEntity httpEntity = null;
HttpClient httpclient = new DefaultHttpClient();
HttpResponse response = httpclient.execute(httpRequest);
...

Làm cách nào để lấy mã trạng thái của phản hồi?

Câu trả lời:


211

Điều này sẽ trả về intgiá trị:

response.getStatusLine().getStatusCode()

30
Sau đó, bạn có thể so sánh với mã trạng thái HTTP developer.android.com/reference/org/apache/http/HttpStatus.html
thanhbinh84

2
Vì HttpStatus là một lớp không được dùng nữa nên có một lớp tốt hơn được sử dụng không?
gaara87

@AkashRamani - Vâng, chỉ cần sử dụng các phương pháp HttpUrlConnection: .getResponseCode ()
Nikita Kurtin

1
@NikitaKurtin chắc chắn rằng trả về một số nguyên nhưng làm thế nào bạn biết được Trạng thái phản hồi Http của mã phản hồi thực tế là gì? Làm thế nào bạn biết nếu nó thành công? Tôi không muốn nói if(getResponseCode()==200). Tôi muốn nói if(getResponseCode()==HttpStatus.RESPONSE_OK)hoặc một cái gì đó tương tự.
gaara87,

3
@AkashRamani, Có, nó có Hằng số int bên trong lớp cho điều đó. ví dụ: HttpURLConnection.HTTP_OK (200 -> http trạng thái ok) HttpURLConnection.HTTP_NOT_FOUND (404 -> không tìm thấy), v.v. danh sách đầy đủ các hằng số có sẵn mà bạn có thể tìm thấy trong tham chiếu lớp của nó: developer.android.com/reference/java/ net /…
Nikita Kurtin

9
if (response.getStatusLine().getStatusCode()== HttpsURLConnection.HTTP_OK){
...
}
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.