Installs into .claude/skills of the current project.
Are you the author of Requests?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/microsoft-requests)
---
name: requests
description: Best practices for HTTP client usage with Requests including sessions, error handling, and timeouts.
---
# Skill: Requests
Best practices for HTTP client usage with Requests including sessions, error handling, and timeouts.
## When to Use
Apply this skill when making HTTP requests with the Requests library — sessions, auth, error handling, retries, and file uploads.
## Sessions
- Use `requests.Session()` for connection pooling and persistent headers/cookies across multiple requests.
- Configure `session.headers` for default auth tokens and user-agent strings.
- Use `session.mount()` with `HTTPAdapter` for retry logic.
## Error Handling
- Always call `response.raise_for_status()` to surface HTTP errors as exceptions.
- Always set `timeout=(connect_timeout, read_timeout)` — never use infinite timeouts.
- Handle `requests.ConnectionError`, `requests.Timeout`, and `requests.HTTPError` explicitly.
## Retries
- Use `urllib3.util.Retry` with `HTTPAdapter` for automatic retries with backoff.
- Configure status-based retries for transient errors (429, 500, 502, 503, 504).
## Security
- Never disable SSL verification (`verify=False`) in production.
- Pass credentials via environment variables, not hardcoded strings.
- Use `auth=` parameter for HTTP auth rather than manually setting headers.
## Pitfalls
- Don't forget timeouts — they default to None (infinite wait).
- Don't use `requests.get()` for high-throughput — use sessions.
- Close responses from streaming requests (`stream=True`) to release connections.