import requests
from typing import Optional, Dict, Any
class HttpClient:
def __init__(self, base_url: str, timeout: int = 30):
self.base_url = base_url
self.timeout = timeout
self.session = requests.Session()
def get(self, endpoint: str, params: Optional[Dict[str, Any]] = None) -> dict:
url = f"{self.base_url}{endpoint}"
response = self.session.get(url, params=params, timeout=self.timeout)
response.raise_for_status()
return response.json()
def post(self, endpoint: str, data: Dict[str, Any]) -> dict:
url = f"{self.base_url}{endpoint}"
response = self.session.post(url, json=data, timeout=self.timeout)
response.raise_for_status()
return response.json()