MultipartUtils { public static String getCharEncoding(final Map<String, List<String>> headers) { String contentType = getHeader(CONTENT_TYPE, headers); if (contentType != null) { ParameterParser parser = new ParameterParser(); parser.setLowerCaseNames(true); Map<String, String> params = parser.parse(contentType, ';'); return params.get("charset"); } return null; } private  MultipartUtils(); static boolean isMultipart(final String contentTypeHeaderValue); static boolean hasMultipartContentType(final Map<String, List<String>> headers); static String getContentType(final Map<String, List<String>> headers); static long getContentLength(final Map<String, List<String>> headers); static String getCharEncoding(final Map<String, List<String>> headers); static List<String> getHeaders(final String headerName, final Map<String, List<String>> headers); static String getHeader(final String headerName, final Map<String, List<String>> headers); static boolean isFormField(final Map<String, List<String>> headers, final MultipartContext context); static String readFormParameterValue(final StreamStorage streamStorage, final Map<String, List<String>> headers); static String getFileName(final Map<String, List<String>> headers); static String getFieldName(final Map<String, List<String>> headers); static boolean isContentTransferEncodingBase64Encoded(final Map<String, List<String>> partHeaders); static byte[] getBoundary(final String contentType); static final byte DASH; static final byte CR; static final byte LF; static final byte[] HEADER_DELIMITER; static final String MULTIPART; static final String CONTENT_DISPOSITION; static final String CONTENT_TRANSFER_ENCODING; static final String CONTENT_LENGTH; static final String CONTENT_TYPE; static final String FORM_DATA; static final String ATTACHMENT; static final String MULTIPART_FORM_DATA; static final String MULTIPART_MIXED; static final String TEXT_PLAIN; }
@Test public void getCharEncoding(){ Map<String, List<String>> charEncodingUTF8 = new HashMap<String, List<String>>(); charEncodingUTF8.put(MultipartUtils.CONTENT_TYPE.toLowerCase(), Collections.singletonList("text/plain; charset=UTF-8")); Map<String, List<String>> noCharEncoding = new HashMap<String, List<String>>(); noCharEncoding.put(MultipartUtils.CONTENT_TYPE.toLowerCase(), Collections.singletonList("text/plain")); assertEquals("UTF-8", MultipartUtils.getCharEncoding(charEncodingUTF8)); assertNull(MultipartUtils.getCharEncoding(noCharEncoding)); assertNull(MultipartUtils.getCharEncoding(new HashMap<String, List<String>>())); }