У нас есть неплохой API (который мы не можем изменить), если значение Content-Type для части равно NULL, мы имеем конкретную обработку.В apache http-клиенте, как сохранить Content-Type в StringBody как пустой или пустой?
До httpclient3.x мы могли бы сделать следующее и установить тип содержимого как null.
StringPart sp = new StringPart("name, "value")
sp.setContentType(null);
Теперь мы перешли к HTTP компонентов (httpclient4.x баночке), и я понял, что нам нужно передать экземпляр ContentBody (StringBody быть точным). В следующей версии были найдены следующие два способа:
multipartEntityBuilder.addPart(FormBodyPartBuilder.create().setName(propName).setBody(new StringBody(propValue, ContentType.create("application/octet-stream", "UTF-8"))).build());
multipartEntityBuilder.addPart(propName, new StringBody(propValue, ContentType.create("application/octet-stream", "UTF-8")));
Однако я не мог передать тело без Content-Type. Даже если я использую устаревший конструктор для StringBody, он устанавливает Content-Type в обычный текст.
Я знаю, что любая часть запроса всегда должна иметь Content-Type, но это особый случай устаревшего сервера назначения, который мы не можем обновить.
[Вы можете прочитать эту тему.] (Http://stackoverflow.com/questions/22326994/is-there-a-standard-null-mime -тип) – Sid