MultipartUtils { public static long getContentLength(final Map<String, List<String>> headers) { long contentLength = -1; String contentLengthHeaderValue = getHeader(CONTENT_LENGTH, headers); if (contentLengthHeaderValue != null && contentLengthHeaderValue.length() > 0){ try { contentLength = Long.parseLong(contentLengthHeaderValue); } catch (Exception e) { contentLength = -1; } } return contentLength; } 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 getContentLength(){ Map<String, List<String>> contentLength100 = new HashMap<String, List<String>>(); contentLength100.put(MultipartUtils.CONTENT_LENGTH.toLowerCase(), Collections.singletonList("100")); Map<String, List<String>> contentLengthWrongValue = new HashMap<String, List<String>>(); contentLengthWrongValue.put(MultipartUtils.CONTENT_LENGTH.toLowerCase(), Collections.singletonList("ABC")); assertEquals(100, MultipartUtils.getContentLength(contentLength100)); assertEquals(-1, MultipartUtils.getContentLength(contentLengthWrongValue)); assertEquals(-1, MultipartUtils.getContentLength(new HashMap<String, List<String>>())); }