Первый шаг работы с HttpKit начинается с простого и приятного старта.
HttpKit.get(url); // Создаём GET-запрос.
HttpKit.post(url); // Создаём POST-запрос.
HttpKit.delete(url); // Создаём DELETE-запрос.
HttpKit.put(url); // Создаём PUT-запрос.
Здесь HttpKit предоставляет статические методы для доступа к API. Нет необходимости создавать объект HttpKit с помощью new. Фактически, все операции запроса начинаются отсюда. В настоящее время HttpKit поддерживает четыре типа запросов: get, post, delete и put. Каждый тип запроса имеет четыре перегруженных метода.
Рассмотрим метод post в качестве примера:
RequestBase post(String url); // ①
RequestBase post(URI uri); // ②
RequestBase post(String url, RequestBase request); //③
RequestBase post(URI uri, RequestBase request); //④
— ① Использование строки URL для запроса. — ② Использование объекта URI для запроса. — ③ Использование строки URL и объекта RequestBase в качестве текущего запроса. — ④ Использование объекта URI и объекта RequestBase в качестве текущего запроса.
Примечание: Для текущего запроса переданные объекты RequestBase будут использоваться как данные инициализации для конфигурации RequestConfig.Builder, CookieStore и Header. Это позволяет элегантно сохранять сеанс и легко передавать его в последующие запросы. Этот подход особенно полезен для запросов, требующих предварительной авторизации. Кроме того, метод автоматически распознаёт HTTPS-запросы и обрабатывает одностороннюю аутентификацию. Для HTTPS-запросов с двусторонней аутентификацией необходимо самостоятельно настроить сертификаты, см. RequestBase.setJks.
Метод HttpKit.post(url) возвращает объект RequestBase, который предоставляет параметры настройки, прокси, Cookie, Header, userAgent, ContentType, аутентификацию, одностороннюю и двустороннюю аутентификацию, загрузку файлов и механизмы повторных попыток в случае сбоев. Также он обеспечивает выполнение запросов.
С помощью объекта RequestBase можно настроить параметры запроса. HttpKit использует множество перегрузок методов для минимизации сложности настройки параметров.
Существует три способа настройки параметров:
Перегрузка методов настройки параметров
Перегрузка методов добавления параметров
Пример:
HttpKit.post("https://0oky.com").addParameter("name", "value");
Примечание: Значение параметра может быть любым объектом, и при настройке параметров будет вызван метод toString() этого объекта.
FormPart form = FormPart.create("name", "value");
form.addParameter("fieldName", new File("test.txt"));
HttpKit.post("https://0oky.com").useForm(form);
FormPart используется только для настройки параметров формы и кодирования. Процесс настройки параметров является цепочечным. Например:
FormPart form = FormPart.create() .addParameter("name", "value") .addParameter("fieldName", new File("test.txt")) .addParameter("name2", "testString".getBytes());
### Работа с Cookie
> Используйте метод RequestBase.addCookie для установки нескольких Cookie, так как это вариативный параметр, можно передать любое количество объектов Cookie.
> Кроме того, API предоставляет методы setCookieStore и getCookieStore для получения, установки, удаления и истечения срока действия Cookie.
```java
HttpKit.post("https://0oky.com").addCookie(new BasicClientCookie("name", "value"));
HttpKit.post("https://0oky.com").addCookie(new BasicClientCookie("name", "value"), new BasicClientCookie("name2", "value2"));
Методы RequestBase могут использоваться для управления заголовками.
HttpKit.post("https://0oky.com").setProxy("192.168.10.10", 1182);
Можно настроить механизм повторных попыток с помощью метода RequestBase.setRetryTimes.
Для настройки сертификата двусторонней аутентификации используйте метод RequestBase.setJKS.
Установите схему аутентификации с помощью метода setCredentials объекта RequestBase. В настоящее время доступны следующие схемы аутентификации:
Существует перегрузка метода схемы аутентификации.
Только методы
RequestBase.execute
иRequestBase.executeCallback
являются истинным выполнением запроса. Разница между методамиexecute
иexecuteCallback
заключается в том, что первый использует только предоставленный пул соединений для управленияHttpClient
и является одиночным запросом, а второй добавляет асинхронный многопоточный запрос на основе первого. Возвращаемые значения различаются: методexecute
возвращает объектResponseWrap
, а методexecuteCallback
— объектRequestFuture
.ResponseHandler
может быть настроен для возврата желаемого типа значения.
Методы перегрузки объекта следующие:
Пример:
HttpKit.get("https://0oky.com").execute().getString();
// Многопоточный запрос
List<RequestFuture<String>> taskWraps = new ArrayList<>();
RequestFuture<String> task;
RequestBase request = null;
for (int i = 0; i < 1000; i++) {
request = HttpKit.get("https://0oky.com");
task = request.executeCallback(executorService, new MyResponseHandler());
taskWraps.add(task);
}
for (RequestFuture<String> taskWrap : taskWraps) {
taskWrap.get(); // Синхронное получение результата запроса
}
Метод
RequestBase.execute
вернёт этот объект. Этот объект содержит обработку результатов ответа и проверку того, был ли адрес перенаправлен. Результаты обработки используют объектBufferedHttpEntity
для кэширования, поэтому результаты ответа можно повторно считывать. (По умолчаниюhttpClient
не поддерживает повторное чтение, при повторном чтении будет выдана ошибка.) Основные методы обработки результатов включаютgetByteArray()
,getBufferedReader()
,getString()
,transferTo()
,getJson()
иgetJsonList()
.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )