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

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

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

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

```python
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-прокси:**
   ```python
   proxy="http://10.10.1.10:3128"
   ```

2. **HTTP-прокси с авторизацией:**
   ```python
   proxy="http://user:password@10.10.1.10:3128"
   ```

3. **HTTPS-прокси:**
   ```python
   proxy="https://10.10.1.10:1080"
   ```
   
4. **HTTPS-прокси с авторизацией:**
   ```python
   proxy="https://user:password@10.10.1.10:1080"
   ```

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