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.requestvà các hàm trợ giúp theo phương thức.- encoding: str¶
Mã hóa chuỗi được dùng để giải mã
requests.Response.headersvàrequests.Response.content. Mặc định là"utf-8".
- headers: str¶
Header phản hồi được giải mã bằng
requests.Response.encodingvà trả về dưới dạngstr.
- content: str¶
Nội dung phản hồi được giải mã bằng
requests.Response.encodingvà trả về dưới dạngstr.
- json() dict¶
Phân tích cú pháp
requests.Response.contentdướ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
urlvà trả vềrequests.Response.method--- Phương thức HTTP dưới dạngstr(ví dụ:"GET","POST").url--- URL đích. Phải bắt đầu bằnghttp://hoặchttps://.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. ĐặtContent-Type: application/json.files--- Dict ánh xạ tên trường tới tuple(filename, fileobj). Được gửi dưới dạngmultipart/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
HEADvà trả vềResponse.HEADgiống hệtGETngoạ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 traContent-Length/Content-Typemà không cần tải xuống tải trọng, hoặc thăm dò URL trước khi gửiGETnặng hơn.Đối số:
url-- URL đích; phải bắt đầu bằnghttp://hoặchttps://.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/streamtừrequest()được chấp nhận để đầy đủ nhưng hiếm khi có ý nghĩa vớiHEAD.
- requests.get(url: str, **kw: Any) Response¶
Gửi yêu cầu HTTP
GETvà trả vềResponse.GETlà độ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ởiurl. 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ằnghttp://hoặchttps://.headers(kwarg) -- dict các header yêu cầu bổ sung (ví dụ:AuthorizationhoặcAccept).auth(kwarg) -- tuple(username, password)cho xác thực HTTP Basic.
Nội dung yêu cầu qua
data/jsonđượcrequest()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
POSTvà trả vềResponse.POSTgửi dữ liệu tớiurl, 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ằnghttp://hoặchttps://.data(kwarg) -- nội dung yêu cầu thô (giốngbytes). Tự động gửi headerContent-Length.json(kwarg) -- đối tượng được tuần tự hóa thành JSON và gửi làm nội dung. ĐặtContent-Type: application/json.files(kwarg) -- dict ánh xạ tên trường tới(filename, fileobj). Được gửi dưới dạngmultipart/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
PUTvà trả vềResponse.PUTthay thế tài nguyên tạiurlbằ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ạiPUTgiố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ằnghttp://hoặchttps://.data(kwarg) -- nội dung thay thế thô (giốngbytes).json(kwarg) -- đối tượng được tuần tự hóa thành JSON và gửi làm nội dung thay thế. ĐặtContent-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
datahoặcjsonđể mang biểu diễn mới.
- requests.patch(url: str, **kw: Any) Response¶
Gửi yêu cầu HTTP
PATCHvà trả vềResponse.PATCHáp dụng một thay đổi một phần cho tài nguyên tạiurl-- chỉ các trường có trong nội dung yêu cầu mới thay đổi. Không giốngPUT, 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ằnghttp://hoặchttps://.data(kwarg) -- nội dung delta thô (giốngbytes). Đị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. ĐặtContent-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
DELETEvà trả vềResponse.DELETEyêu cầu xóa tài nguyên tạiurl. 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ằnghttp://hoặchttps://.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đượcrequest()cơ bản cho phép nhưng hiếm khi được dùng vớiDELETE.