Я делаю простой POST-запрос к конечной точке, который принимает ТОЛЬКО "multipart / form-data". Я понял, что Unirest анализирует все мои типы полей и, соответственно, сам устанавливает тип контента.
MultipartBody request = Unirest.post("http://somendpoint")
.field("attachment", new File("D:\\home\\Documents\\Bird.jpg"))
.field("name", "Bob","text/plain");
System.out.println(request.getEntity().getContentType());
Итак, здесь вывод
Content-Type: multipart/form-data; boundary=hfADYluLg3pgP7ejEXn-3zj-yiqgSj
Что очень правильно. Теперь проблема в том, что поле «вложение» является необязательным для моего запроса. Как только я удаляю вложение, я получаю 400, потому что тип контента, принимаемый конечной точкой, не соответствует моему запросу. Код:
MultipartBody request = Unirest.post("http://somendpoint")
.header("Content-type", "multipart/form-data")
.field("name", "Bob","text/plain");
System.out.println(request.getEntity().getContentType());
Выход:
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Есть ли способ, с помощью которого я могу заставить Unirest установить мой предполагаемый тип контента?