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 및 메서드별 헬퍼에 의해 반환됩니다.

status_code: int

서버가 반환한 정수 HTTP 상태 코드입니다.

reason: str

서버가 반환한 이유 구문(디코딩된 str)입니다.

encoding: str

requests.Response.headersrequests.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 를 반환합니다.

  • methodstr 로 된 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 를 반환합니다.

GETurl 로 식별되는 리소스의 표현을 가져오는 표준 동사입니다. 이는 안전하며(서버 측 상태 변경을 일으키지 않음) 멱등적입니다.

인자:

  • url – 대상 URL입니다. http:// 또는 https:// 로 시작해야 합니다.

  • headers (키워드 인자) – 추가 요청 헤더의 딕셔너리입니다(예: Authorization 또는 Accept).

  • auth (키워드 인자) – HTTP 기본 인증을 위한 (username, password) 튜플입니다.

data / json 을 통한 요청 본문은 기반 request() 에서 허용되지만 대부분의 서버에서 무시됩니다.

requests.post(url: str, **kw: Any) Response

HTTP POST 요청을 보내고 Response 를 반환합니다.

POSTurl 에 데이터를 제출하며, 일반적으로 새 종속 리소스를 생성하거나, 폼 제출을 트리거하거나, 작업을 호출합니다. 안전하지도 멱등적이지도 않으며, 반복 호출 시 중복 리소스가 생성될 수 있습니다.

인자:

  • 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 를 반환합니다.

PUTurl 의 리소스를 제공된 표현으로 교체하며, 존재하지 않으면 생성합니다. 이는 멱등적입니다. 동일한 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 를 반환합니다.

PATCHurl 의 리소스에 부분적 수정을 적용합니다 – 요청 본문에 포함된 필드만 변경됩니다. 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 를 반환합니다.

DELETEurl 의 리소스 제거를 요청합니다. 이는 멱등적입니다. 이미 삭제된 리소스를 삭제해도 오류가 아닙니다(서버는 일반적으로 404를 반환하지만 최종 상태는 동일합니다).

인자:

  • url – 대상 URL입니다. http:// 또는 https:// 로 시작해야 합니다.

  • headers (키워드 인자) – 추가 요청 헤더의 딕셔너리입니다.

  • auth (키워드 인자) – HTTP 기본 인증을 위한 (username, password) 튜플입니다.

data / json 을 통한 본문은 기반 request() 에서 허용되지만 DELETE 와 함께 사용되는 경우는 드뭅니다.