При создании составного / связанного запроса. Нам нужно добавить дополнительный type=MIME_TYPE к строке Content-Type

Content-Type должен выглядеть так

Content-Type: multipart/related; boundary=boundary_1324; type="application/json";

При взгляде на конструктор MultipartBody

MultipartBody(ByteString boundary, MediaType type, List<Part> parts) {
    this.boundary = boundary;
    this.originalType = type;
    this.contentType = MediaType.parse(type + "; boundary=" + boundary.utf8());
    this.parts = Util.immutableList(parts);
  }

Нам разрешено добавить маркер границы.

Но когда звонишь MediaType.parse вот так

final MediaType parse = MediaType.parse("multipart/related; type=application/json");

Разбор объекта: null.

Кто-нибудь знает, как добавить type=application/json?

1
Aegis 12 Июл 2017 в 18:57

1 ответ

Лучший ответ

Укажите значение в кавычках и не включайте завершающие строки;

MediaType mt = MediaType.parse("multipart/related; type=\"application/json\"");

Это соответствует спецификации, которая ожидает либо простой токен, либо строку в кавычках. https://www.rfc-editor.org/rfc/rfc2045#section- 5.1

N.b. MediaType не будет извлекать тип за вас, но не должен потерпеть неудачу.

2
Community 7 Окт 2021 в 14:06