Выполнение запроса на публикацию данных из нескольких частей формы с помощью Java
Появление Apache Commons HttpClient версии 4.0 устранило возможность выполнения POST-запросов с несколькими частями/формами данных, которые были возможны в версии 3.x. Команда HttpClient объяснила, что многокомпонентная функциональность выходит за рамки их основной деятельности, и рекомендовала искать альтернативные библиотеки.
Нахождение подходящей библиотеки Java
Возникает вопрос, какие Библиотеки Java предлагают возможности POST-запросов с несколькими частями/формами данных. Одной из таких библиотек является HttpClient 4.x, которая предоставляет комплексное решение для выполнения этих запросов.
Обновленный код HttpClient 4.3
В HttpClient версии 4.3 и выше API был обновлен, а некоторые классы устарели. Следующий фрагмент кода иллюстрирует обновленный метод создания сообщений из составных файлов:
CloseableHttpClient httpClient = HttpClients.createDefault(); HttpPost uploadFile = new HttpPost("..."); MultipartEntityBuilder builder = MultipartEntityBuilder.create(); builder.addTextBody("field1", "yes", ContentType.TEXT_PLAIN); // This attaches the file to the POST: File f = new File("[/path/to/upload]"); builder.addBinaryBody( "file", new FileInputStream(f), ContentType.APPLICATION_OCTET_STREAM, f.getName() ); HttpEntity multipart = builder.build(); uploadFile.setEntity(multipart); CloseableHttpResponse response = httpClient.execute(uploadFile); HttpEntity responseEntity = response.getEntity();
Устаревший код HttpClient 4.0 (для справки)
HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost(url); FileBody bin = new FileBody(new File(fileName)); StringBody comment = new StringBody("Filename: " fileName); MultipartEntity reqEntity = new MultipartEntity(); reqEntity.addPart("bin", bin); reqEntity.addPart("comment", comment); httppost.setEntity(reqEntity); HttpResponse response = httpclient.execute(httppost); HttpEntity resEntity = response.getEntity();
С помощью этих библиотек разработчики могут легко создавать HTTP-клиенты, способные выполнять POST-запросы с составными данными и данными форм, что позволяет им взаимодействовать с веб-службами и API, которым требуется этот тип формат запроса.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3