Перейти к содержанию

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

В Nalogovich предусмотрена встроенная поддержка использования прокси для всех сетевых запросов к API ФНС.

Как передать прокси

Чтобы использовать прокси, просто передайте параметр proxy при инициализации NpdClient:

from nalogovich.lknpd import NpdClient
import asyncio

async def main():
    # Настраиваем клиент с использованием прокси
    async with NpdClient(
        inn="123456789012",
        password="your_password",
        proxy="http://10.10.1.10:3128"  # Укажите адрес вашего прокси
    ) as client:

        # Запрос авторизации пройдет через указанный прокси
        await client.auth()
        print("Авторизация прошла успешно!")

        # Все последующие запросы (например, получение чеков) 
        # также будут использовать этот прокси
        checks = await client.get_checks()
        print(f"Получено чеков: {len(checks.items)}")

if __name__ == "__main__":
    asyncio.run(main())

Поддерживаемые форматы

Для работы с сетью под капотом используется библиотека aiohttp, поэтому поддерживаются стандартные HTTP и HTTPS прокси (включая прокси с авторизацией по логину и паролю).

Вот возможные форматы строк:

  1. Обычный HTTP-прокси:

    proxy="http://10.10.1.10:3128"
    

  2. HTTP-прокси с авторизацией:

    proxy="http://user:password@10.10.1.10:3128"
    

  3. HTTPS-прокси:

    proxy="https://10.10.1.10:1080"
    

  4. HTTPS-прокси с авторизацией:

    proxy="https://user:password@10.10.1.10:1080"
    

Внимание: SOCKS-прокси

Из коробки aiohttp (и следовательно, Nalogovich) не поддерживает socks4/socks5 прокси в параметре proxy строкой. Если вам необходим SOCKS-прокси, потребуется использовать сторонние решения, такие как установка библиотеки aiohttp-socks и кастомная настройка сессии aiohttp.ClientSession.