requests — HTTP 클라이언트¶
requests 모듈은 Python requests 라이브러리와 유사한 최소한의 HTTP/HTTPS 클라이언트 API를 제공합니다. 각 요청 함수는 requests.Response 객체를 반환합니다.
예제:
import requests
# GET a JSON resource.
r = requests.get("https://httpbin.org/get")
print(r.status_code, r.reason)
print(r.json())
# POST JSON.
r = requests.post(
"https://httpbin.org/post",
json={"id": 1, "value": 42},
headers={"X-Source": "openmv"},
)
print(r.json())
Response 클래스¶
- class requests.Response(code: int, reason: str, headers: bytes = None, content: bytes = None)¶
HTTP 응답을 나타냅니다. 인스턴스는
requests.request및 메서드별 헬퍼에 의해 반환됩니다.- encoding: str¶
requests.Response.headers와requests.Response.content를 디코딩하는 데 사용되는 문자열 인코딩입니다. 기본값은"utf-8"입니다.
- headers: str¶
requests.Response.encoding으로 디코딩되어str로 반환된 응답 헤더입니다.
- content: str¶
requests.Response.encoding으로 디코딩되어str로 반환된 응답 본문입니다.
- json() dict¶
requests.Response.content를 JSON으로 파싱하여 결과 객체를 반환합니다.
함수¶
- requests.request(method: str, url: str, data: bytes | None = None, json: Any | None = None, files: dict | None = None, headers: dict = {}, auth: tuple | None = None, stream: Any | None = None) Response¶
url로 HTTP 요청을 보내고requests.Response를 반환합니다.method—str로 된 HTTP 메서드(예:"GET","POST")입니다.url— 대상 URL입니다.http://또는https://로 시작해야 합니다.data— 원시 요청 본문입니다. 설정하면Content-Length가 자동으로 추가됩니다.json— JSON으로 직렬화되어 본문으로 전송되는 객체입니다.Content-Type: application/json을 설정합니다.files— 필드 이름을(filename, fileobj)튜플에 매핑하는 딕셔너리입니다.multipart/form-data로 전송됩니다.headers— 추가 요청 헤더의 딕셔너리입니다.auth— HTTP 기본 인증을 위한(username, password)튜플입니다.stream— API 호환성을 위해 허용되며 사용되지는 않습니다.
- requests.head(url: str, **kw: Any) Response¶
HTTP
HEAD요청을 보내고Response를 반환합니다.HEAD는 서버가 상태 줄과 헤더만 응답하고 본문은 비어 있다는 점을 제외하면GET과 동일합니다. 리소스의 존재 여부를 확인하거나, 페이로드를 다운로드하지 않고Content-Length/Content-Type을 검사하거나, 더 무거운GET을 보내기 전에 URL을 탐색하는 데 사용하세요.인자:
url– 대상 URL입니다.http://또는https://로 시작해야 합니다.headers(키워드 인자) – 추가 요청 헤더의 딕셔너리입니다.auth(키워드 인자) – HTTP 기본 인증을 위한(username, password)튜플입니다.
request()의data/json/files/stream도 완전성을 위해 허용되지만HEAD에서는 의미가 있는 경우가 드뭅니다.
- requests.get(url: str, **kw: Any) Response¶
HTTP
GET요청을 보내고Response를 반환합니다.GET은url로 식별되는 리소스의 표현을 가져오는 표준 동사입니다. 이는 안전하며(서버 측 상태 변경을 일으키지 않음) 멱등적입니다.인자:
url– 대상 URL입니다.http://또는https://로 시작해야 합니다.headers(키워드 인자) – 추가 요청 헤더의 딕셔너리입니다(예:Authorization또는Accept).auth(키워드 인자) – HTTP 기본 인증을 위한(username, password)튜플입니다.
data/json을 통한 요청 본문은 기반request()에서 허용되지만 대부분의 서버에서 무시됩니다.
- requests.post(url: str, **kw: Any) Response¶
HTTP
POST요청을 보내고Response를 반환합니다.POST는url에 데이터를 제출하며, 일반적으로 새 종속 리소스를 생성하거나, 폼 제출을 트리거하거나, 작업을 호출합니다. 안전하지도 멱등적이지도 않으며, 반복 호출 시 중복 리소스가 생성될 수 있습니다.인자:
url– 대상 URL입니다.http://또는https://로 시작해야 합니다.data(키워드 인자) – 원시 요청 본문(bytes와 유사)입니다.Content-Length헤더를 자동으로 보냅니다.json(키워드 인자) – JSON으로 직렬화되어 본문으로 전송되는 객체입니다.Content-Type: application/json을 설정합니다.files(키워드 인자) – 필드 이름을(filename, fileobj)에 매핑하는 딕셔너리입니다.multipart/form-data로 전송됩니다.headers(키워드 인자) – 추가 요청 헤더의 딕셔너리입니다.auth(키워드 인자) – HTTP 기본 인증을 위한(username, password)튜플입니다.
data/json/files중 최대 하나만 전달하세요.
- requests.put(url: str, **kw: Any) Response¶
HTTP
PUT요청을 보내고Response를 반환합니다.PUT은url의 리소스를 제공된 표현으로 교체하며, 존재하지 않으면 생성합니다. 이는 멱등적입니다. 동일한PUT을 반복하면 동일한 최종 상태가 됩니다.인자:
url– 대상 URL입니다.http://또는https://로 시작해야 합니다.data(키워드 인자) – 원시 교체 본문(bytes와 유사)입니다.json(키워드 인자) – JSON으로 직렬화되어 교체 본문으로 전송되는 객체입니다.Content-Type: application/json을 설정합니다.headers(키워드 인자) – 추가 요청 헤더의 딕셔너리입니다.auth(키워드 인자) – HTTP 기본 인증을 위한(username, password)튜플입니다.
새 표현을 전달하려면
data또는json중 하나를 전달하세요.
- requests.patch(url: str, **kw: Any) Response¶
HTTP
PATCH요청을 보내고Response를 반환합니다.PATCH는url의 리소스에 부분적 수정을 적용합니다 – 요청 본문에 포함된 필드만 변경됩니다.PUT과 달리 멱등적일 필요는 없습니다(다만 많은 API가 멱등적으로 만듭니다).인자:
url– 대상 URL입니다.http://또는https://로 시작해야 합니다.data(키워드 인자) – 원시 델타 본문(bytes와 유사)입니다. 형식은 서버에 따라 다릅니다(예: JSON Patch, JSON Merge Patch).json(키워드 인자) – JSON으로 직렬화된 델타 객체입니다.Content-Type: application/json을 설정합니다.headers(키워드 인자) – 추가 요청 헤더의 딕셔너리입니다.auth(키워드 인자) – HTTP 기본 인증을 위한(username, password)튜플입니다.
- requests.delete(url: str, **kw: Any) Response¶
HTTP
DELETE요청을 보내고Response를 반환합니다.DELETE는url의 리소스 제거를 요청합니다. 이는 멱등적입니다. 이미 삭제된 리소스를 삭제해도 오류가 아닙니다(서버는 일반적으로 404를 반환하지만 최종 상태는 동일합니다).인자:
url– 대상 URL입니다.http://또는https://로 시작해야 합니다.headers(키워드 인자) – 추가 요청 헤더의 딕셔너리입니다.auth(키워드 인자) – HTTP 기본 인증을 위한(username, password)튜플입니다.
data/json을 통한 본문은 기반request()에서 허용되지만DELETE와 함께 사용되는 경우는 드뭅니다.