Хочу представить учебный пример 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 "накатить" аутентификацию и посылать доступные запросы для выполнения каких либо действий.
Приступим:
Константа 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