Я пытаюсь отправить полезную нагрузку MultipartBody с помощью OkHttp3. Вот MWE для создания полезной нагрузки (плюс получение ее в виде строки):
MediaType JSON = MediaType.get("application/json");
RequestBody requestBody = new MultipartBody.Builder()
.setType(MultipartBody.MIXED)
.addPart(RequestBody.create(JSON, "{\"foo\": true, \"bar\": \"some string\"}"))
.build();
Buffer buffer = new Buffer();
requestBody.writeTo(buffer);
String requestBodyAsString = buffer.readUtf8();
, которая автоматически добавляет заголовки, и в результате получается:
--8d863b3b-72a0-4b29-b4f4-5cc0b68d8117
Content-Type: application/json; charset=utf-8
Content-Length: 35
{"foo": true, "bar": "some string"}
--8d863b3b-72a0-4b29-b4f4-5cc0b68d8117
Сервер, против которого я отправляютребует, чтобы кодировка символов и заголовок Content-Length были удалены следующим образом:
--8d863b3b-72a0-4b29-b4f4-5cc0b68d8117
Content-Type: application/json
{"foo": true, "bar": "some string"}
--8d863b3b-72a0-4b29-b4f4-5cc0b68d8117
MultipartBody.Builder()
имеет .addPart(Headers headers, RequestBody body)
, но я не могу использовать это для удаления заголовков или переопределения заголовка Content-Type. Есть ли способ изменить их через API OkHttp, или мне нужно было бы изменить строку полезных данных напрямую?