Знакомство с протоколом HTTP

Знакомство с протоколом HTTP #

HTTP-приложения #

Презентацию можно посмотреть по ссылке.

Видео-запись на Rutube

HTTP-протокол #

Презентацию можно посмотреть по ссылке.

Видео-запись на Rutube

URI-пути #

Презентацию можно посмотреть по ссылке.

Видео-запись на Rutube

Знакомство с библиотекой http4k #

Презентацию можно посмотреть по ссылке.

Видео-запись на Rutube

Документация #

Задача № 1. Скачивание HTML-документа #

Реализуйте консольное приложение, которое скачивает HTML-документ.

В качестве аргументов приложение получает два аргумента:

  • URI-адрес HTML-документа, который необходимо скачать.
  • Путь к каталогу, в который необходимо сохранить HTML-документ.

Для реализации приложения необходимо подключить библиотеку http4k-core и выбранную реализацию клиента.

В случае, если клиенту удалось подключиться по указанному URI, то оно должно сохранить полученный документ по пути ЦЕЛЕВОЙ КАТАЛОГ/ИМЯ ДОМЕНА.html.

В качестве тестов можно воспользоваться адресами:

Задача № 2. Обработка несуществующего пути #

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

В качестве тестов воспользуйтесь следующими адресами:

Задача № 3. Скачивание и обработка JSON-документа #

Скачайте следующий JSON-документ с помощью HTTP-клиента, извлеките из него список треугольников и отобразите статистику.

Сначала необходимо вывести статистику по цветам границы треугольника. Список цветов должен быть отсортирован лексикографически.

Пример вывода:

Статистика по цветам:
* GREEN: 1
* RED: 15

Затем необходимо вывести статистику по длине периметров треугольников по промежуткам: от 0 до 100, от 101 до 200, …, от 2901 до 3000. Гарантирутся, что периметр треугольников не больше 3000. Не надо выводить промежуток, в котором не оказалось треугольников.

JSON-документ доступен по ссылке.

© A. M. Васильев, 2024, CC BY-SA 4.0, andrey@crafted.su