12

Apache HTTPクライアントv4を使用してリクエストを発行しているGETときに、応答メディアタイプ(正式にはMIMEタイプ)を取得するにはどうすればよいですか?

Apache HTTPクライアントv3を使用して、MIMEタイプは次のように取得されました。

 String mimeType = response.getMimeType();

Apache HTTP Client v4を使用してメディアタイプを取得するにはどうすればよいですか?

4

3 に答える 3

33

応答からコンテンツ タイプを取得するには、 ContentTypeクラスを使用できます。

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

このクラスを使用すると、MIME タイプを簡単に抽出できます。

String mimeType = contentType.getMimeType();

または文字セット:

Charset charset = contentType.getCharset();
于 2013-07-29T19:00:14.030 に答える
20

「Content-type」HTTP ヘッダーは、MIME タイプ情報を提供する必要があります。

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

またはとして

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

content-type にはエンコーディングも含まれる場合があるため、MIME タイプ自体を抽出できます。

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

もちろん、ヘッダーの値を取得する前に null チェックを行うことを忘れないでください (コンテンツ タイプ ヘッダーがサーバーによって送信されない場合)。

于 2012-01-31T10:46:58.997 に答える