Java. Отправить файл в теле json в POST запросе или найти эквивалент, приведенному php коду
Мне нужно отправить файл в json теле. Сразу скажу, что вариант с кодированием в base64 НЕ подходит. В php можно использовать такой код:
CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_POSTFIELDS => array('speechdata'=> new CURLFILE('https://file-examples-com.github.io/uploads/2017/11/file_example_WAV_1MG.wav'),'connectaction' => '1'), CURLOPT_HTTPHEADER => array( "Content-Type: application/json" )
Какой будет эквивалент этого кода на java?
Пробовал MultiPartBody, но сервер как-будто не распознает в нем json. То есть именно на этот сервер успешно отправлялись запросы только со строковым представлением json, как например: httpRequestBuilder.POST(HttpRequest.BodyPublishers.ofString("{\"key1\":\"value1\",\"key2\":\"value2\"}"));, а все остальные варианты отдают ошибки неправильности запроса, ошибки парсинга json, ошибки доступа, ошибки загрузки файла...
Запрос должен быть по протоколу HTTPS в POST запросе с телом в формате json (Content-Type: application/json) и файл должен находиться в json теле с ключом speechdata.