如何从响应中找到 HTTP 媒体类型(MIME 类型)?

2022-09-04 23:50:36

使用 Apache HTTP Client v4 发出请求时,如何获取响应媒体类型(正式的 MIME 类型)?GET

使用 Apache HTTP Client v3,MIME 类型是通过以下方式获得的:

 String mimeType = response.getMimeType();

如何使用 Apache HTTP Client v4 获取媒体类型?


答案 1

若要从响应中获取内容类型,可以使用 ContentType 类。

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

使用此类,您可以轻松提取哑剧类型:

String mimeType = contentType.getMimeType();

或字符集:

Charset charset = contentType.getCharset();

答案 2

“内容类型”HTTP 标头应为您提供哑剧类型信息:

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

或作为

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

然后,您可以提取哑剧类型本身,因为内容类型也可能包括编码。

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

当然,在获取标头的值之前,不要忘记空检查(以防内容类型的标头不是由服务器发送的)。


推荐