Найти в Дзене

Http client на java

Хочу представить учебный пример Http Client'а написанного на java без использования сторонних библиотек. Если вы прочитали заметки по java.net и разобрались в клиент-серверном взаимодействии, то трудностей, как минимум в понимании, у вас не возникнет.

Немного терминов:

API - программный интерфейс приложения (application programming interface), описание способов, которыми одна компьютерная программа может взаимодействовать с другой программой.

HTTP - (HyperText Transfer Protocol) протокол прикладного уровня передачи гипертекста. По-простому, это текстовый формат имеющий свою структуру для общения разных программ.

Методы HTTP
GET - используется для запроса указанного содержимого
POST - применяется для передачи пользовательских данных заданному ресурсу

Возьмем API стороннего сервиса, к примеру https://api.challonge.com/ru/v1. Почему challonge.com, простая аутентификация, что и нужно для примера. Вы можете взять любой ресурс у которого есть открытый api "накатить" аутентификацию и посылать доступные запросы для выполнения каких либо действий.

Приступим:

-2

Константа API_KEY - это ключ который можно получить на ресурсе challonge.com. Он идентифицирует аккаунт с которым наш клиент и будет работать, в данном случае мы создадим турнир с именем Турнир #2.

Переменная jsonInputString это та информация которую нам представляет api ресурса, что бы мы могли выполнить нужное действие описанное в документации. Конечно пример далёк от реальности так как я поленился и добавил одно имя, по этому помучится пустой турнир и вряд ли мы его сможем использовать. Но вы же уже знаете как это исправить:) Описанные параметры, которые нужно добавить тут - https://api.challonge.com/ru/v1/documents/tournaments/create

Обратите внимания, что у нас POST запрос, он используется для создания турнира:

httpURLConnection.setRequestMethod("POST");

Для получения данных (после создания турнира) можно использовать GET запрос, пример по ссылке ниже. В GET запросе нет тела (jsonInputString), как минимум потребитель (challonge.com) не гарантирует что он его обработает, а параметры отправляются в самом запросе (url).

Исходный код по ссылке https://github.com/Bla2Code/ApacheHttpClient