2012-01-31 10 views
6

Pracuję z żądania GET wykonane przy użyciu klienta HTTP Apache (v4- najnowszej wersji; nie starsze v3) ...Jak znaleźć MIME odpowiedzi

Jak mogę uzyskać MIME odpowiedzi?

W starszej v3 Apache klienta HTTP, typ MIME uzyskano stosując następujące code--

String mimeType = response.getMimeType(); 

Jak mogę uzyskać MIME używając v4 Apache klienta HTTP?

Odpowiedz

16

A "Content-Type" nagłówek HTTP powinno dać mim informacje typu:

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

lub jako

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

Następnie można wyodrębnić typu MIME się jako typ zawartości mogą obejmować kodowanie także.

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

Oczywiście, nie należy zapominać o zerowej-check, zanim się wartość nagłówka (w przypadku nagłówek Content-Type nie są wysyłane przez serwer).

22

Aby uzyskać typ zawartości z odpowiedzi, można użyć klasy ContentType.

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

Korzystanie z tej klasy można łatwo wyodrębnić typ MIME:

String mimeType = contentType.getMimeType(); 

lub charset:

Charset charset = contentType.getCharset(); 
+2

Brzmi to lepszym rozwiązaniem niż akceptowanych odpowiedź. –

+0

To mi bardzo pomaga. wielkie dzięki. –

+3

Dla programistów Androida: Klasa ContentType nie jest dostępna w porcie Android biblioteki Apache HTTP – gardarh