Я хочу создать пользовательскую границу для отправки некоторых json данных и файла с использованием шаблона Spring Rest. Я не могу добавить эту пользовательскую границу. Я не могу переопределить поведение по умолчанию для получения некоторой случайной строки для значения границы. Ниже приведен мой фрагмент кода. Кто-нибудь может подсказать, как получить пользовательскую границу?
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.MULTIPART_MIXED);
headers.set("boundary", "MyCustomboundary");
headers.set("accepts", "multipart/mixed");
MultiValueMap<String, Object> multipartRequest = new LinkedMultiValueMap<>();
'создание HttpEntity для JSON части'
HttpHeaders jsonHeader = new HttpHeaders();
jsonHeader.setContentType(MediaType.APPLICATION_JSON);
jsonHeader.set( "Content-Disposition","form-data");
jsonHeader.set("boundary", "MyCustomboundary");
jsonHeader.set( "name","Metadata");
ContentDisposition contentDisposition = ContentDisposition
.builder("form-data")
.name("file")
.filename("FileName"))
.build();
JSONObject json = getJSONObject();
HttpEntity<String> jsonHttpEntity = new HttpEntity<>(json.toString(), jsonHeader);
'создание HttpEntity для двоичной части'
HttpHeaders pictureHeader = new HttpHeaders();
pictureHeader.set( "Content-Disposition","form-data");
pictureHeader.set( "name","Content");
pictureHeader.set("filename","FileNameTest");
pictureHeader.set("Content-Type", "application/octet-stream");
pictureHeader.set("boundary", "MyCustomboundary");
HttpEntity<ByteArrayResource> picturePart = new HttpEntity<>(new ByteArrayResource(multipartFile.getBytes()), pictureHeader);
', помещая две части в одном запросе '
multipartRequest.add("myAwesomeJsonData", jsonHttpEntity);
multipartRequest.add("file", picturePart);
HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(multipartRequest, headers);
ResponseEntity<String> response = restTemplate.exchange(
endPointURL,
HttpMethod.POST,
requestEntity,
String.class);
** OutPut выглядит следующим образом **
- xASRP9GvA7MfYQqgq0eVyQ2s1HCwMxm
Content-Disposition: form-data Content-Type: application Граница / json: MyCustomboundary name: длина метаданных: 359
{"JSON Key": "Value"} --xASRP9GvA7MfYQqgq0eVyQ2s1HCwMxm
Content-Disposition: имя формы-данных: Content имя файла: output.pdf Тип содержимого: граница потока приложения / октета: Длина содержимого MyCustomboundary: 4504
<- Содержимое файла ->
- xASRP9GvA7MfYQqgq0eVyQ2s1HCwMxm -
** Но я хочу, чтобы это было **
- MyCustomboundary
Content-Disposition: форма-данные Content-Type: application / json border: MyCustomboundary name: Metadata Content- Длина: 359
{"JSON Ключ": "Значение"} --MyCustomboundary
* 10 34 * Content-Disposition: имя-формы-данных: Имя файла содержимого: output.pdf Тип содержимого: граница приложения / потока октетов: Длина содержимого MyCustomboundary: 4504
<- Содержимое файла ->
- MyCustomboundary -
'Кто-нибудь может подсказать, как добавить эту пользовательскую границу?'