1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/jianggujin-JHttp

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Часть 1. Введение

JHttp — это набор инструментов программирования для разработки клиентских приложений на Java, который обеспечивает эффективную и функциональную поддержку протокола HTTP. Он основан на нативном HttpUrlConnection и поддерживает запросы GET, POST, PUT, DELETE, PATCH, HEAD, OPTIONS, TRACE.

Этот инструмент может адаптироваться к большинству бизнес-сценариев и предоставляет богатый API для операций запросов, что упрощает работу разработчиков с HTTP-запросами.

Часть 2. Начало использования

Использовать JHttp можно двумя способами:

  • скачать исходный код и скомпилировать его;
  • загрузить уже скомпилированный файл JAR.

Если вы используете maven для создания проекта, вы можете добавить координаты JHttp в pom.xml:

<!-- http://mvnrepository.com/artifact/com.jianggujin/JHttp -->
<dependency>
    <groupId>com.jianggujin</groupId>
    <artifactId>JHttp</artifactId>
    <version>последняя версия</version>
</dependency>

Последнюю версию можно получить из Maven repository или с Code Cloud.

2.1 Пример использования

Самый простой способ использования — это загрузка исходного кода веб-страницы или обычный вызов интерфейса. Например, чтобы получить доступ к Baidu, можно написать следующий код:

JResponse response = new JTextResponse();
JRequest request = JRequest.create("https://www.baidu.com").response(response);
JRequestExecuter executer = new JDefaultRequestExecuter();
executer.execute(request);
System.out.println(response.getData());

Для одного сетевого запроса необходимы объект запроса, объект ответа и исполнитель запроса. В этом примере используется JTextResponse, который обрабатывает текстовый ответ. Кроме того, JHttp также предоставляет обработку ответов в виде массива байтов и файлов.

По умолчанию JRequest использует метод GET. Можно изменить метод запроса с помощью метода JRequest.method(JMethod method). JRequest также предлагает некоторые общие методы, такие как время ожидания и кодировка символов.

Если вам не нужно создавать отдельный JRequestExecuter, вы можете использовать метод execute() объекта JRequest.

2.2 Установка параметров запроса

Обычно при сетевых запросах передаются параметры запроса. Для этого можно использовать метод data() класса JRequest, который имеет несколько перегруженных методов.

String url = "http://ws.webxml.com.cn/WebServices/WeatherWS.asmx/getWeather";
JRequest request = JRequest.create(url).method(JMethod.POST).response(new JTextResponse())
        .data("theCityCode", "2009").data("theUserID", "");
JRequestExecuter executer = new JDefaultRequestExecuter();
executer.execute(request);
System.out.println(request.response().getData());

2.3 Установка тела запроса

Иногда необходимо отправить не только обычные параметры, но и текст, например, данные в формате JSON для интерфейса Restful. С помощью JHttp это можно сделать легко. Класс JRequest имеет метод requestBody(Object body), который позволяет установить тело запроса. По умолчанию поддерживаются следующие типы данных: CharSequence, Map, byte[] и char[].

Пример использования:

String url = "http://ws.webxml.com.cn/WebServices/WeatherWS.asmx/getWeather";
JRequest request = JRequest.create(url).method(JMethod.POST).response(new JTextResponse())
        .requestBody("theCityCode=2009&theUserID=");
JRequestExecuter executer = new JDefaultRequestExecuter();
executer.execute(request);
System.out.println(request.response().getData());

Если стандартная реализация не соответствует вашим требованиям, вы можете создать собственный анализатор, реализовав интерфейс com.jianggujin.http.request.JRequestBodyResolver и установив его с помощью метода requestBodyResolver(JRequestBodyResolver requestBodyResolver) класса JRequest. Этот способ является самым гибким, и если анализатор не установлен, исполнитель запроса попытается найти зарегистрированный анализатор. Анализаторы регистрируются вместе с исполнителем запроса, поэтому их можно получить через getRequestBodyResolverRegistrar().

Метод принимает два параметра: первый — анализатор тела запроса, второй — заменять ли существующий анализатор (если он есть). Если замена не производится, будет выброшено исключение. JHttp предоставляет анализатор по умолчанию с именем default, который поддерживает преобразование данных типов CharSequence, Map, ByteBuffer, byte[] и char[].

2.4 Обработка ответа запроса

В классе JRequest есть метод response(JResponse response), который устанавливает обработчик ответа. JHttp предлагает следующие виды обработчиков:

  • JByteBufferResponse — преобразует ответ в ByteBuffer.
  • JByteResponse — возвращает ответ в виде массива байтов.
  • JFileResponse — обрабатывает ответ как файл.
  • JJsonResponse — преобразует ответ в формат JSON.
  • JNoBodyResponse — не имеет тела ответа.
  • JTextResponse — обрабатывает текст ответа.
  • JXMLDomResponse — анализирует ответ с использованием DOM.
  • JXmlResponse — анализирует XML-ответ.
  • JXMLSaxResponse — анализирует XML-ответ с использованием SAX.

Обратите внимание на JJsonResponse и JXmlResponse, которые преобразуют данные ответа в указанный Java Bean. Однако они не предоставляют реализацию, и для этой цели необходимо реализовать соответствующие интерфейсы JJsonResolver и JXmlResolver. После этого можно вызвать соответствующий метод setResolver() для расширения обработки по умолчанию.

Если стандартные обработчики не удовлетворяют вашим потребностям, вы можете реализовать интерфейс JResponse или напрямую наследовать от JAbstractResponse.

2.5 Настройка прокси

Если среда выполнения программы ограничена сетью, необходимо настроить прокси для доступа. Это делается путём установки объекта прокси в запросе с помощью метода proxy(Proxy proxy).

Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(host, port));
JRequest.create(url).proxy(proxy );

2.6 SSL

Примечание: в тексте запроса присутствуют фрагменты кода на языке Java, однако в ответе они были опущены.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
Apache-2.0
Отмена

Обновления (3)

все

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/jianggujin-JHttp.git
git@api.gitlife.ru:oschina-mirror/jianggujin-JHttp.git
oschina-mirror
jianggujin-JHttp
jianggujin-JHttp
master