Spring REST - может ли RestTemplate использовать multipart / mixed?
Я хочу написать сервис REST, который отвечает zipFile и некоторыми данными json, все в одном запросе multipart / mixed.
Серверная часть работает нормально, и я тестирую его с клиентом REST из Firefox. Мой сервер отправляет несколько частей, как это
--k-dXaXvCFusLVXUsg-ryiHMmkdttadgcBqi4XH
Content-Disposition: form-data; name="form"
Content-type: application/json
{"projectName":"test","signal":"true"}
--k-dXaXvCFusLVXUsg-ryiHMmkdttadgcBqi4XH
Content-Disposition: form-data; name="file2"; filename="file2.txt"
Content-type: application/octet-stream
Content-Length: 10
hallo=Welt
Я знаю, что RestTemplate может отправлять мультизапчасти с помощью MultiValueMap из коробки.
Теперь я попытался использовать составные / смешанные ответы и вернуть MultiValueMap
@Component
public class RestCommand
extends AbstractLoginRestCommand
{
@Override
protected MultiValueMap executeInternal ( Form form )
{
RestTemplate restTemplate = getRestTemplate();
MyMultiValueMap map = restTemplate.postForObject(getUrl(), form, MyMultiValueMap.class);
return new LinkedMultiValueMap(map);
}
}
class MyMultiValueMap extends LinkedMultiValueMap
{}
MyMultiValueMap существует, чтобы предотвратить стирание типа (обобщение).
Это дает
org.springframework.web.client.RestClientException: Невозможно извлечь ответ: не найден подходящий HttpMessageConverter для типа ответа [class org.jlot.client.remote.MyMultiValueMap] и типа содержимого [multipart / form-data; border = Rjh-fkdsIwIHPHIWIWIWIWF charset = UTF-8] at org.springframework.web.client.HttpMessageConverterExtractor.extractData (HttpMessageConverterExtractor.java:107) в org.springframework.web.client.RestTemplate.T49)
Javadoc из FormHttpMessageConverter говорит, что он может писать, но не читать multipart / form-data.
Почему это так?
Есть ли способ читать multipart / form-data с помощью RestTemplate из коробки или мне нужно написать HttpMessageConverter?