requests는 「파이썬에서 HTTP 요청을 보내는 사실상의 표준 라이브러리」입니다.
표준 라이브러리에는 urllib이 있지만 너무 저수준이어서, 대부분의 실무 코드는 requests를 씁니다.
사람이 쓰기 위한 HTTP(HTTP for Humans)라는 슬로건처럼 직관적입니다.
기본 사용.
import requests.
r = requests.get("https://api.example.com/users") — GET 요청.
r.status_code — 200·404 같은 HTTP 상태 코드.
r.text — 응답 본문 문자열.
r.json() — JSON 응답을 파이썬 딕셔너리로 파싱.
r.headers — 응답 헤더.
다른 메서드도 거의 비슷합니다.
requests.post(url, json={"name":"홍길동"}) — JSON 본문으로 POST.
requests.put / requests.patch / requests.delete도 같은 패턴.
폼 데이터는 data=, 파일 업로드는 files=, 쿼리 스트링은 params=로 넘깁니다.
헤더와 인증.
headers={"Authorization": "Bearer xxx"} — 헤더 추가.
auth=("user", "pass") — Basic 인증.
timeout=10 — 10초 타임아웃(절대 빠뜨리지 마세요, 안 그러면 무한정 멈출 수 있습니다).
응답 처리는 r.raise_for_status()가 편리합니다.
4xx·5xx 응답이면 예외를 발생시켜 줍니다.
try/except requests.HTTPError와 함께 쓰면 깔끔합니다.
또 r.encoding을 명시해 한국어 깨짐을 막을 수 있습니다.
한 줄 요약
requests는 파이썬 HTTP의 사실상 표준입니다.
get·post·put·delete가 직관적이고, headers·auth·timeout으로 옵션 제어, raise_for_status로 에러 처리합니다.
더 알아볼 것
- urllib3 — requests의 내부 엔진
- httpx — async 지원하는 후속 라이브러리
- timeout 빠뜨리면 무한 대기