requests --- HTTP client#

Mô-đun requests cung cấp một API HTTP/HTTPS client tối giản tương tự như thư viện Python requests. Mỗi hàm yêu cầu trả về một đối tượng requests.Response.

Ví dụ:

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())

Lớp Response#

class requests.Response(code: int, reason: str, headers: bytes = None, content: bytes = None)#

Đại diện cho một phản hồi HTTP. Các thực thể được trả về bởi requests.request và các hàm trợ giúp theo phương thức.

status_code: int#

Mã trạng thái HTTP nguyên là số nguyên được server trả về.

reason: str#

Cụm từ lý do được server trả về (str đã giải mã).

encoding: str#

Mã hóa chuỗi được dùng để giải mã requests.Response.headers và requests.Response.content. Mặc định là "utf-8".

headers: str#

Header phản hồi được giải mã bằng requests.Response.encoding và trả về dưới dạng str.

content: str#

Nội dung phản hồi được giải mã bằng requests.Response.encoding và trả về dưới dạng str.

json() → dict#

Phân tích cú pháp requests.Response.content dưới dạng JSON và trả về đối tượng kết quả.

Hàm#

requests.request(method: str, url: str, data: bytes | str | None = None, json: Any | None = None, files: dict | None = None, headers: dict | None = None, auth: tuple | None = None, stream: Any | None = None, timeout: float | None = 5.0) → Response#

Gửi một yêu cầu HTTP tới url và trả về requests.Response.

  • method --- Phương thức HTTP dưới dạng str (ví dụ: "GET", "POST").

  • url --- URL đích. Phải bắt đầu bằng http:// hoặc https://.

  • data --- Nội dung thô của yêu cầu. Một str được mã hóa UTF-8 trước khi gửi. Nếu được đặt, Content-Length sẽ được thêm tự động.

  • json --- Đối tượng được tuần tự hóa thành JSON và gửi làm nội dung. Đặt Content-Type: application/json.

  • files --- Dict ánh xạ tên trường tới tuple (filename, fileobj). Được gửi dưới dạng multipart/form-data.

  • headers --- Dict các header yêu cầu bổ sung. Dict này được sao chép, nên dict của bên gọi không bao giờ bị sửa đổi (và header Authorization được thêm cho auth không bị rò rỉ sang các yêu cầu sau dùng lại dict đó).

  • auth --- Tuple (username, password) cho xác thực HTTP Basic.

  • stream --- Được chấp nhận để tương thích API; không được sử dụng.

  • timeout --- Thời gian chờ socket tính bằng giây, được áp dụng sau khi kết nối đã được thiết lập. Mặc định là 5.0; truyền None để chặn vô thời hạn. Khi hết hạn, OSError được ném ra.

Các phản hồi gửi với Transfer-Encoding: chunked được giải mã một cách trong suốt, nên requests.Response.content luôn chứa nội dung đã ghép lại từ các chunk. Các header phản hồi được so khớp không phân biệt chữ hoa chữ thường. Chuyển hướng không được theo dõi: một phản hồi 3xx có header Location sẽ ném ra NotImplementedError.

requests.head(url: str, **kw: Any) → Response#

Gửi yêu cầu HTTP HEAD và trả về Response.

HEAD giống hệt GET ngoại trừ server chỉ phản hồi với dòng trạng thái và header; nội dung là rỗng. Dùng để kiểm tra xem tài nguyên có tồn tại không, kiểm tra Content-Length / Content-Type mà không cần tải xuống tải trọng, hoặc thăm dò URL trước khi gửi GET nặng hơn.

Đối số:

  • url -- URL đích; phải bắt đầu bằng http:// hoặc https://.

  • headers (kwarg) -- dict các header yêu cầu bổ sung.

  • auth (kwarg) -- tuple (username, password) cho xác thực HTTP Basic.

data / json / files / stream từ request() được chấp nhận để đầy đủ nhưng hiếm khi có ý nghĩa với HEAD.

requests.get(url: str, **kw: Any) → Response#

Gửi yêu cầu HTTP GET và trả về Response.

GET là động từ tiêu chuẩn để lấy một biểu diễn của tài nguyên được xác định bởi url. Nó là an toàn (không gây thay đổi trạng thái phía server) và idempotent.

Đối số:

  • url -- URL đích; phải bắt đầu bằng http:// hoặc https://.

  • headers (kwarg) -- dict các header yêu cầu bổ sung (ví dụ: Authorization hoặc Accept).

  • auth (kwarg) -- tuple (username, password) cho xác thực HTTP Basic.

  • timeout (kwarg) -- thời gian chờ socket tính bằng giây (mặc định 5.0).

Nội dung yêu cầu qua data / json được request() cơ bản cho phép nhưng hầu hết các server bỏ qua.

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

Gửi yêu cầu HTTP POST và trả về Response.

POST gửi dữ liệu tới url, thường là tạo tài nguyên phụ mới, kích hoạt gửi biểu mẫu, hoặc gọi một hành động. Nó không an toàn cũng không idempotent: các lần gọi lặp lại có thể tạo ra các tài nguyên trùng lặp.

Đối số:

  • url -- URL đích; phải bắt đầu bằng http:// hoặc https://.

  • data (kwarg) -- nội dung yêu cầu thô (giống bytes). Tự động gửi header Content-Length.

  • json (kwarg) -- đối tượng được tuần tự hóa thành JSON và gửi làm nội dung. Đặt Content-Type: application/json.

  • files (kwarg) -- dict ánh xạ tên trường tới (filename, fileobj). Được gửi dưới dạng multipart/form-data.

  • headers (kwarg) -- dict các header yêu cầu bổ sung.

  • auth (kwarg) -- tuple (username, password) cho xác thực HTTP Basic.

  • timeout (kwarg) -- thời gian chờ socket tính bằng giây (mặc định 5.0). Hãy tăng giá trị này cho các endpoint chậm như các API LLM.

Chỉ truyền tối đa một trong data / json / files.

requests.put(url: str, **kw: Any) → Response#

Gửi yêu cầu HTTP PUT và trả về Response.

PUT thay thế tài nguyên tại url bằng biểu diễn được cung cấp, tạo mới nếu chưa tồn tại. Nó là idempotent: lặp lại PUT giống hệt cho cùng trạng thái cuối cùng.

Đối số:

  • url -- URL đích; phải bắt đầu bằng http:// hoặc https://.

  • data (kwarg) -- nội dung thay thế thô (giống bytes).

  • json (kwarg) -- đối tượng được tuần tự hóa thành JSON và gửi làm nội dung thay thế. Đặt Content-Type: application/json.

  • headers (kwarg) -- dict các header yêu cầu bổ sung.

  • auth (kwarg) -- tuple (username, password) cho xác thực HTTP Basic.

Truyền data hoặc json để mang biểu diễn mới.

requests.patch(url: str, **kw: Any) → Response#

Gửi yêu cầu HTTP PATCH và trả về Response.

PATCH áp dụng một thay đổi một phần cho tài nguyên tại url -- chỉ các trường có trong nội dung yêu cầu mới thay đổi. Không giống PUT, nó không bắt buộc phải idempotent (mặc dù nhiều API làm vậy).

Đối số:

  • url -- URL đích; phải bắt đầu bằng http:// hoặc https://.

  • data (kwarg) -- nội dung delta thô (giống bytes). Định dạng phụ thuộc vào server (ví dụ: JSON Patch, JSON Merge Patch).

  • json (kwarg) -- đối tượng delta được tuần tự hóa thành JSON. Đặt Content-Type: application/json.

  • headers (kwarg) -- dict các header yêu cầu bổ sung.

  • auth (kwarg) -- tuple (username, password) cho xác thực HTTP Basic.

requests.delete(url: str, **kw: Any) → Response#

Gửi yêu cầu HTTP DELETE và trả về Response.

DELETE yêu cầu xóa tài nguyên tại url. Nó là idempotent: việc xóa một tài nguyên đã bị xóa không phải là lỗi (server thường trả về 404, nhưng trạng thái cuối cùng là như nhau).

Đối số:

  • url -- URL đích; phải bắt đầu bằng http:// hoặc https://.

  • headers (kwarg) -- dict các header yêu cầu bổ sung.

  • auth (kwarg) -- tuple (username, password) cho xác thực HTTP Basic.

Nội dung qua data / json được request() cơ bản cho phép nhưng hiếm khi được dùng với DELETE.