requests --- Klien HTTP#
Modul requests menyediakan API klien HTTP/HTTPS minimal yang mirip dengan pustaka Python requests. Setiap fungsi permintaan mengembalikan objek requests.Response.
Contoh:
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())
Kelas Response#
- class requests.Response(code: int, reason: str, headers: bytes = None, content: bytes = None)#
Merepresentasikan respons HTTP. Instance dikembalikan oleh
requests.requestdan helper per metode.- encoding: str#
Pengkodean string yang digunakan untuk mendekode
requests.Response.headersdanrequests.Response.content. Default ke"utf-8".
- headers: str#
Header respons yang didekode dengan
requests.Response.encodingdan dikembalikan sebagaistr.
- content: str#
Isi respons yang didekode dengan
requests.Response.encodingdan dikembalikan sebagaistr.
- json() dict#
Mem-parsing
requests.Response.contentsebagai JSON dan mengembalikan objek yang dihasilkan.
Fungsi#
- 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#
Mengirim permintaan HTTP ke
urldan mengembalikanrequests.Response.method--- Metode HTTP sebagaistr(misalnya"GET","POST").url--- URL target. Harus dimulai denganhttp://atauhttps://.data--- Isi permintaan mentah. Sebuahstrdi-encode UTF-8 sebelum dikirim. Jika diatur,Content-Lengthditambahkan secara otomatis.json--- Objek yang diserialisasi ke JSON dan dikirim sebagai isi. MengaturContent-Type: application/json.files--- Dict yang memetakan nama field ke tuple(filename, fileobj). Dikirim sebagaimultipart/form-data.headers--- Dict berisi header permintaan tambahan. Dict tersebut disalin, sehingga dict milik pemanggil tidak pernah dimodifikasi (dan headerAuthorizationyang ditambahkan untukauthtidak bocor ke permintaan berikutnya yang menggunakannya kembali).auth--- Tuple(username, password)untuk autentikasi HTTP Basic.stream--- Diterima untuk kompatibilitas API; tidak digunakan.timeout--- Timeout socket dalam detik, diterapkan setelah koneksi terbentuk. Default-nya5.0; teruskanNoneuntuk memblokir tanpa batas waktu. Saat habis,OSErrordimunculkan.
Respons yang dikirim dengan
Transfer-Encoding: chunkeddidekode secara transparan, sehinggarequests.Response.contentselalu berisi isi yang sudah di-de-chunk. Header respons dicocokkan tanpa membedakan huruf besar/kecil. Pengalihan (redirect) tidak diikuti: respons 3xx dengan headerLocationmemunculkanNotImplementedError.
- requests.head(url: str, **kw: Any) Response#
Mengirim permintaan HTTP
HEADdan mengembalikanResponse.HEADidentik denganGETkecuali server membalas hanya dengan baris status dan header; isi kosong. Gunakan untuk memeriksa apakah sumber daya ada, memeriksaContent-Length/Content-Typetanpa mengunduh payload, atau menyelidiki URL sebelum mengeluarkanGETyang lebih berat.Argumen:
url-- URL target; harus dimulai denganhttp://atauhttps://.headers(kwarg) -- dict dari header permintaan tambahan.auth(kwarg) -- tuple(username, password)untuk autentikasi HTTP Basic.
data/json/files/streamdarirequest()diterima untuk kelengkapan tetapi jarang masuk akal untukHEAD.
- requests.get(url: str, **kw: Any) Response#
Mengirim permintaan HTTP
GETdan mengembalikanResponse.GETadalah kata kerja standar untuk mengambil representasi sumber daya yang diidentifikasi olehurl. Ini aman (tidak menyebabkan perubahan status sisi server) dan idempoten.Argumen:
url-- URL target; harus dimulai denganhttp://atauhttps://.headers(kwarg) -- dict dari header permintaan tambahan (misalnyaAuthorizationatauAccept).auth(kwarg) -- tuple(username, password)untuk autentikasi HTTP Basic.timeout(kwarg) -- timeout socket dalam detik (default5.0).
Isi permintaan melalui
data/jsondiizinkan olehrequest()yang mendasarinya tetapi diabaikan oleh sebagian besar server.
- requests.post(url: str, **kw: Any) Response#
Mengirim permintaan HTTP
POSTdan mengembalikanResponse.POSTmengirimkan data keurl, biasanya membuat sumber daya bawahan baru, memicu pengiriman formulir, atau memanggil suatu tindakan. Ini tidak aman maupun idempoten: panggilan berulang dapat membuat sumber daya duplikat.Argumen:
url-- URL target; harus dimulai denganhttp://atauhttps://.data(kwarg) -- isi permintaan mentah (sepertibytes). Mengirim headerContent-Lengthsecara otomatis.json(kwarg) -- objek yang diserialisasi ke JSON dan dikirim sebagai isi. MengaturContent-Type: application/json.files(kwarg) -- dict yang memetakan nama field ke(filename, fileobj). Dikirim sebagaimultipart/form-data.headers(kwarg) -- dict dari header permintaan tambahan.auth(kwarg) -- tuple(username, password)untuk autentikasi HTTP Basic.timeout(kwarg) -- timeout socket dalam detik (default5.0). Naikkan nilainya untuk endpoint yang lambat seperti API LLM.
Berikan paling banyak satu dari
data/json/files.
- requests.put(url: str, **kw: Any) Response#
Mengirim permintaan HTTP
PUTdan mengembalikanResponse.PUTmenggantikan sumber daya diurldengan representasi yang diberikan, membuatnya jika tidak ada. Ini idempoten: mengulangiPUTyang identik menghasilkan status akhir yang sama.Argumen:
url-- URL target; harus dimulai denganhttp://atauhttps://.data(kwarg) -- isi penggantian mentah (sepertibytes).json(kwarg) -- objek yang diserialisasi ke JSON dan dikirim sebagai isi penggantian. MengaturContent-Type: application/json.headers(kwarg) -- dict dari header permintaan tambahan.auth(kwarg) -- tuple(username, password)untuk autentikasi HTTP Basic.
Berikan
dataataujsonuntuk membawa representasi baru.
- requests.patch(url: str, **kw: Any) Response#
Mengirim permintaan HTTP
PATCHdan mengembalikanResponse.PATCHmenerapkan modifikasi parsial pada sumber daya diurl-- hanya field yang terkandung dalam isi permintaan yang berubah. Berbeda denganPUT, tidak diperlukan untuk bersifat idempoten (meskipun banyak API membuatnya demikian).Argumen:
url-- URL target; harus dimulai denganhttp://atauhttps://.data(kwarg) -- isi delta mentah (sepertibytes). Format bergantung pada server (misalnya JSON Patch, JSON Merge Patch).json(kwarg) -- objek delta yang diserialisasi ke JSON. MengaturContent-Type: application/json.headers(kwarg) -- dict dari header permintaan tambahan.auth(kwarg) -- tuple(username, password)untuk autentikasi HTTP Basic.
- requests.delete(url: str, **kw: Any) Response#
Mengirim permintaan HTTP
DELETEdan mengembalikanResponse.DELETEmeminta penghapusan sumber daya diurl. Ini idempoten: menghapus sumber daya yang sudah dihapus bukan merupakan error (server biasanya mengembalikan 404, tetapi status akhirnya sama).Argumen:
url-- URL target; harus dimulai denganhttp://atauhttps://.headers(kwarg) -- dict dari header permintaan tambahan.auth(kwarg) -- tuple(username, password)untuk autentikasi HTTP Basic.
Isi melalui
data/jsondiizinkan olehrequest()yang mendasarinya tetapi jarang digunakan denganDELETE.