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.headersrequests.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 | None = None, json: Any | None = None, files: dict | None = None, headers: dict = {}, auth: tuple | None = None, stream: Any | None = None) 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 yêu cầu thô. Nếu được đặt, Content-Length đượ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.

  • 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.

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.

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.

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.