1. Введение
В этом учебнике мы исследуем несколько библиотек для чтения органа реагирования HTTP в качестве строки в Java. С первых версий Java предоставила API HttpURLConnection. Это включает в себя только основные функции и известен не очень удобно.
С выпуском JDK 11 Java представила новую и улучшенную HttpClient API для обработки http связи. Мы охватим эти библиотеки и проверим некоторые альтернативы, такие как Apache HttpClient и Весенний отдых шаблон .
2. HttpClient
Как мы уже упоминали ранее, HttpClient был добавлен в Java 11. Это позволяет нам получить доступ к ресурсам по сети. Но, в отличие от HttpURLConnection , HttpClient поддерживает HTTP/1.1 и HTTP/2 . Более того, обеспечивает как синхронные, так и асинхронные типы запросов .
HttpClient предлагает современный API с большой гибкостью и мощными функциями. Главным образом, этот API состоит из трех основных классов: HttpClient , HttpRequest , и HttpРеспонс .
HttpРеспонс описывает результат HttpRequest звать. HttpРеспонс не создается напрямую и доступен, когда тело было полностью получено.
Чтобы прочитать ответ тела в качестве Струна, Сначала нам нужно создать простые объекты клиента и запроса:
HttpClient client = HttpClient.newHttpClient(); HttpRequest request = HttpRequest.newBuilder() .uri(URI.create(DUMMY_URL)) .build();
Затем мы просто используем BodyHandlers и вызов метода ofString () чтобы вернуть ответ:
HttpResponse response = client.send(request, HttpResponse.BodyHandlers.ofString());
3. HttpURLConnection
HttpURLConnection является легким клиентом HTTP, используемым для доступа к ресурсам через протокол HTTP или HTTPS и позволяет нам создать ВходНая трансляция . Как только мы Входной поток, мы можем прочитать его как нормальный местный файл.
На Java основными классами, которые мы можем использовать для доступа к Интернету, являются java.net.URL класс и java.net.httpURLConnection класс. Во-первых, мы будем использовать URL класс, чтобы указать на веб-ресурс. Затем мы можем получить к нему доступ с помощью HttpURLConnection класс.
Чтобы получить ответ тела от URL в качестве Струнные , мы должны сначала создать HttpURLConnection используя наши URL :
HttpURLConnection connection = (HttpURLConnection) new URL(DUMMY_URL).openConnection();
новый URL (DUMMY_URL).openConnection() возвращает HttpURLConnection . Этот объект позволяет добавлять заготовки или проверять код ответа.
Далее, давайте получить ВходНая трансляция из подключение объект:
InputStream inputStream = connection.getInputStream();
Наконец, мы должны преобразовать InputStream в строковую .
4. Apache HttpClient
В этом разделе мы увидим, как использовать Apache HttpClient для чтения органа реагирования HTTP в качестве строки.
Чтобы использовать эту библиотеку, нам нужно добавить ее зависимость к нашему проекту Maven:
org.apache.httpcomponents httpclient 4.5.12
Мы можем извлечения и отправки данных через БлизкийHttpClient класс . Для создания экземпляра с конфигурацией по умолчанию мы можем использовать HttpClients.createDefault() .
БлизкийHttpClient обеспечивает выполнить способ отправки и получения данных. Этот метод использует параметр типа HttpUriRequest , который имеет много подклассов, включая HttpGet и HttpPost .
Давайте сначала создать HttpGet объект :
HttpGet request = new HttpGet(DUMMY_URL);
Во-вторых, давайте создать клиентскую :
CloseableHttpClient client = HttpClients.createDefault();
В-третьих, извлечение объекта ответа в результате выполнить метод:
CloseableHttpResponse response = client.execute(request);
Наконец, мы возвращаем ответный орган преобразование сущности ответа в Струнные :
HttpEntity entity = response.getEntity(); String result = EntityUtils.toString(entity);
5. Весенний restTemplate
В этом разделе мы увидим, как использовать Spring RestTemplate для чтения органа реагирования HTTP в качестве строки.
РестТемплет класс является важным инструментом, предоставляемым Весна, которая предлагает простой шаблон для того, чтобы сделать клиентские операции HTTP над базовыми библиотеками клиентов HTTP, такими как JDK HttpURLConnection , Апач HttpClient , и другие.
РестТемплет обеспечивает некоторые полезные методы для создания запросов HTTP и обработки ответов.
Мы можем использовать эту библиотеку, сначала добавив некоторые зависимости в наш проект Maven:
org.springframework.boot spring-boot-starter-web ${spring-boot.version} org.springframework.boot spring-boot-starter-test ${spring-boot.version} test
Чтобы сделать веб-запрос и вернуть тело ответа в качестве строки, давайте сначала создать экземпляр РестТемплет :
RestTemplate restTemplate = new RestTemplate();
Во-вторых, получить объект ответа, позвонив методу getForObject () , прохождение в URL и желаемого типа ответа – мы будем использовать Струна.class в нашем примере:
String response = restTemplate.getForObject(DUMMY_URL, String.class);
6. Заключение
В этой статье мы видели, как использовать несколько библиотек для чтения органа реагирования HTTP в качестве Струнные .
Как обычно, полный код доступен более на GitHub .