Android: วิธีรับรหัสสถานะของคำขอ HttpClient


90

ฉันต้องการดาวน์โหลดไฟล์และต้องการตรวจสอบรหัสสถานะการตอบกลับ (เช่นHTTP /1.1 200 OK) นี่คือโค้ดของฉัน:

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

ฉันจะรับรหัสสถานะของการตอบกลับได้อย่างไร

คำตอบ:


211

สิ่งนี้จะคืนintค่า:

response.getStatusLine().getStatusCode()

30
จากนั้นคุณสามารถเปรียบเทียบกับผู้พัฒนา
HTTPandroid.com/reference/org/apache/http/HttpStatus.html

2
เนื่องจาก HttpStatus เป็นคลาสที่เลิกใช้แล้วจึงมีคลาสที่ดีกว่าที่จะใช้หรือไม่?
gaara87

@AkashRamani - ใช่เพียงแค่ใช้วิธี HttpUrlConnection: .getResponseCode ()
Nikita Kurtin

1
@NikitaKurtin แน่ใจว่าส่งคืนจำนวนเต็ม แต่คุณจะรู้ได้อย่างไรว่าสถานะการตอบกลับ Http ของรหัสตอบกลับจริงคืออะไร? คุณจะรู้ได้อย่างไรว่าประสบความสำเร็จหรือไม่? if(getResponseCode()==200)ฉันไม่อยากจะบอกว่า ฉันอยากจะพูดif(getResponseCode()==HttpStatus.RESPONSE_OK)หรืออะไรทำนองนั้น
gaara87

3
@AkashRamani ใช่มันมีค่าคงที่ int ในชั้นเรียนสำหรับสิ่งนั้น ตัวอย่างเช่น HttpURLConnection.HTTP_OK (200 -> สถานะตกลง http) HttpURLConnection.HTTP_NOT_FOUND (404 -> ไม่พบ) ฯลฯ รายการค่าคงที่ที่มีอยู่ทั้งหมดที่คุณสามารถพบได้ในการอ้างอิงคลาส: developer.android.com/reference/java/ net / …
Nikita Kurtin

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.