package glaze.mime; import org.apache.http.Header; import org.apache.http.HttpEntity; import org.apache.http.HttpHeaders; import org.apache.http.HttpResponse; import org.apache.http.entity.ContentType; import org.apache.http.message.BasicHeader; import com.google.common.base.Optional; public final class MimeResolver { private static final BasicHeader DEFAULT_HEADER = new BasicHeader("", ContentType.APPLICATION_JSON.getMimeType()); public static String resolve(HttpResponse response) { Header contentType = response.getFirstHeader(HttpHeaders.CONTENT_TYPE); String mime; if (contentType == null) { mime = resolveFromEntity(response); } else { mime = ContentType.parse(contentType.getValue()).getMimeType(); } return mime; } private static String resolveFromEntity(HttpResponse response) { String mime = ContentType.APPLICATION_JSON.getMimeType(); HttpEntity entity = response.getEntity(); if (entity != null) { Header header = Optional.fromNullable(entity.getContentType()).or(DEFAULT_HEADER); mime = ContentType.parse(header.getValue()).getMimeType(); } return mime; } }