Во времена Apache Commons HttpClient версии 3.x выполнение POST-запроса multipart / form-data было возможно ( пример из 2004 года ). К сожалению, в версии 4.0 HttpClient это невозможно .
Для нашей основной деятельности «HTTP» multipart несколько выходит за рамки. Мы бы хотели использовать составной код, поддерживаемый каким-либо другим проектом, для которого он входит в область видимости, но мне ничего не известно. Несколько лет назад мы пытались перенести составной код на commons-codec, но мне это не удалось. Олег недавно упомянул еще один проект, в котором есть составной код синтаксического анализа и который может быть заинтересован в нашем коде составного форматирования. Я не знаю текущего статуса по этому поводу. ( http://www.nabble.com/multipart-form-data-in-4.0-td14224819.html )
Кто-нибудь знает о какой-либо библиотеке Java, которая позволяет мне написать HTTP-клиент, который может выполнять POST-запрос multipart / form-data?
История вопроса: я хочу использовать удаленный API Zoho Writer .
Ответы:
Мы используем HttpClient 4.x для публикации составных файлов.
ОБНОВЛЕНИЕ . Начиная с HttpClient 4.3 , некоторые классы устарели. Вот код с новым API:
Ниже приведен исходный фрагмент кода с устаревшим API HttpClient 4.0 :
источник
Это зависимости Maven, которые у меня есть.
Код Java:
Зависимости Maven в pom.xml:
источник
HttpEntity
классаЕсли размер JAR-файлов имеет значение (например, в случае апплета), можно также напрямую использовать httpmime с java.net.HttpURLConnection вместо HttpClient.
Код:
Зависимость в pom.xml:
источник
Используйте этот код для загрузки изображений или любых других файлов на сервер с помощью публикации в multipart.
для загрузки требуются следующие файлы.
библиотеки есть
httpclient-4.1.2.jar,
httpcore-4.1.2.jar,
httpmime-4.1.2.jar,
httpclient-cache-4.1.2.jar,
commons-codec.jar
иcommons-logging-1.1.1.jar
быть в пути к классам.источник
Вы также можете использовать REST Assured, основанный на HTTP-клиенте. Все очень просто:
источник
multiPart("controlName", new File("/somedir/file.bin"))
см github.com/rest-assured/rest-assured/wiki/...Вот решение, которое не требует никаких библиотек.
Эта процедура передает каждый файл в каталоге
d:/data/mpf10
вurlToConnect
источник
httpcomponents-client-4.0.1
работал у меня. Однако мне пришлось добавить внешнюю банкуapache-mime4j-0.6.jar
( org.apache.james.mime4j ), иначеreqEntity.addPart("bin", bin);
она не компилировалась. Теперь это работает как шарм.источник
Я нашел этот образец в Кратком руководстве Apache . Это для версии 4.5:
источник
У нас есть чистая Java-реализация отправки с несколькими частями без использования каких-либо внешних зависимостей или библиотек за пределами jdk. Обратитесь https://github.com/atulsm/https-multipart-purejava/blob/master/src/main/java/com/atul/MultipartPure.java
источник
Мой код отправляет multipartFile на сервер.
источник