Skip to content

EOF-413/LibraryHttp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 

Repository files navigation

LibraryHttp (LH)

LH - это универсальная библиотека для выполнения HTTP запросов с поддержкой повторных попыток и логирования.

Проект на PyPi!

Особенности

  • Поддержка GET запросов
  • Поддержка скачивания файлов
  • Автоматические повторные попытки при ошибках
  • Прогресс-бар для скачивания
  • Интеграция с LibraryLogSystem (LLS)
  • Настраиваемый User-Agent
  • Настраиваемые таймауты и задержки

Установка

from LH import Http

Использование

GET запрос

from LH import Http

Простой GET запрос

response = Http.get('https://api.example.com/data')

GET запрос с таймаутом

response = Http.get('https://api.example.com/data', timeout=10)

GET запрос с JSON

data = Http.get_json('https://api.example.com/data')

Скачивание файлов

from LH import Http

Скачивание с прогрессом

def progress(percent):
    print(f"Загружено: {percent}%")

Http.download(
    'https://example.com/file.zip',
    'downloads/file.zip',
    progress_callback=progress
)

Скачивание без прогресса

Http.download('https://example.com/file.zip', 'downloads/file.zip')

Настройка параметров

GET запрос с кастомными параметрами

response = Http.get(
    url='https://api.example.com/data',
    timeout=30,
    attempts=5,
    backoff=2.0
)

API

Http.get()

Http.get(url, timeout=15, attempts=3, backoff=1.5)

Выполняет GET запрос.

Параметры:

- url (str): URL запроса
- timeout (int): Таймаут в секундах (по умолчанию: 15)
- attempts (int): Количество попыток (по умолчанию: 3)
- backoff (float): Множитель задержки между попытками (по умолчанию: 1.5)

Возвращает:

- bytes: Содержимое ответа

Исключения:

- urllib.error.HTTPError: Ошибка HTTP
- urllib.error.URLError: Ошибка сети

Http.get_json()

Http.get_json(url, timeout=15)

Выполняет GET запрос и возвращает JSON.

Параметры:

- url (str): URL запроса
- timeout (int): Таймаут в секундах (по умолчанию: 15)

Возвращает:

- dict/list: Парсенный JSON

Http.download()

Http.download(url, dest_path, progress_callback=None, timeout=15, attempts=3, backoff=1.5)

Скачивает файл по URL.

Параметры:

- url (str): URL файла
- dest_path (str): Путь для сохранения
- progress_callback (callable): Функция для отслеживания прогресса (получает процент)
- timeout (int): Таймаут в секундах (по умолчанию: 15)
- attempts (int): Количество попыток (по умолчанию: 3)
- backoff (float): Множитель задержки между попытками (по умолчанию: 1.5)

Логирование

Библиотека автоматически логирует все запросы и ошибки через LLS:

[25.07.2026 21:59:18] [DEBUG] [client.py] [get] [25] -> Попытка 1/3 не удалась для https://api.example.com: Connection refused. Повтор через 1.5 с.
[25.07.2026 21:59:18] [INFO] [client.py] [get] [30] -> Запрос выполнен успешно

Зависимости

LibraryLogSystem (LLS)

About

LH - это универсальная библиотека для выполнения HTTP запросов с поддержкой повторных попыток и логирования.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages