По умолчанию весной доступны следующие конвертеры сообщений:
ByteArrayHttpMessageConverter – converts byte arrays
StringHttpMessageConverter – converts Strings
ResourceHttpMessageConverter – converts org.springframework.core.io.Resource for any type of octet stream
SourceHttpMessageConverter – converts javax.xml.transform.Source
FormHttpMessageConverter – converts form data to/from a MultiValueMap<String, String>.
Jaxb2RootElementHttpMessageConverter – converts Java objects to/from XML (added only if JAXB2 is present on the classpath)
MappingJackson2HttpMessageConverter – converts JSON (added only if Jackson 2 is present on the classpath)
MappingJacksonHttpMessageConverter – converts JSON (added only if Jackson is present on the classpath)
AtomFeedHttpMessageConverter – converts Atom feeds (added only if Rome is present on the classpath)
RssChannelHttpMessageConverter – converts RSS feeds (added only if Rome is present on the classpath)
При получении нового запроса Spring будет использовать заголовок «Accept» для определения типа носителя, на который он должен ответить.в вашем случае FormHttpMessageConverter
- это преобразователь, выбранный по умолчанию весной, поскольку вы указали тип содержимого. При записи многочастных данных этот преобразователь использует другие HttpMessageConverters
для записи соответствующих частей MIME. Класс FormHttpMessageConverter
не смог найтиконвертер сообщений для типа Long.Таким образом, вы можете попробовать преобразовать Long в строку и присвоить его части:
Long time = System.currentTimeMillis();
parts.add("time", String.valueOf(time));
parts.add("md5", SecureUtil.md5(time + "234234").toUpperCase());
parts.add("file", zipFile);
HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(parts, headers);
Doc