2012-01-31 23 views
6

tôi đang làm việc với một yêu cầu GET khiến sử dụng Apache HTTP client (v4- phiên bản mới nhất, không phải là cũ v3) ...Làm thế nào để tìm Mimetype phản ứng

Làm thế nào để có được Mimetype của phản ứng?

Trong cũ v3 của khách hàng http apache, loại mime thu được sử dụng sau code--

String mimeType = response.getMimeType(); 

Làm thế nào để tôi có được Mimetype sử dụng v4 của khách hàng http apache?

Trả lời

16

A "Content-type" HTTP tiêu đề sẽ cho bạn bằng điệu loại thông tin:

Header contentType = response.getFirstHeader("Content-Type"); 

hoặc như

Header contentType = response.getEntity().getContentType(); 

Sau đó, bạn có thể trích xuất loại mime chính nó như là content-type có thể bao gồm mã hóa cũng.

String mimeType = contentType.getValue().split(";")[0].trim(); 

Tất nhiên, đừng quên kiểm tra trước khi nhận giá trị của tiêu đề (trong trường hợp tiêu đề kiểu nội dung không được máy chủ gửi).

22

Để nhận loại nội dung từ phản hồi, bạn có thể sử dụng lớp ContentType.

HttpEntity entity = response.getEntity(); 
ContentType contentType; 
if (entity != null) 
    contentType = ContentType.get(entity); 

Sử dụng lớp này bạn có thể dễ dàng trích xuất loại mime:

String mimeType = contentType.getMimeType(); 

hoặc charset:

Charset charset = contentType.getCharset(); 
+2

này nghe có vẻ giống như một giải pháp tốt hơn so với câu trả lời chấp nhận. –

+0

Điều này giúp tôi rất nhiều. rất rất cảm ơn. –

+3

Đối với nhà phát triển Android: Lớp ContentType không có sẵn trong cổng Android của thư viện Apache HTTP – gardarh

Các vấn đề liên quan