requests --- عميل HTTP¶
توفر الوحدة requests واجهة برمجية لعميل HTTP/HTTPS بسيطة شبيهة بمكتبة Python requests. تُرجع كل دالة طلب كائن 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والدوال المساعدة الخاصة بكل طريقة.- encoding: str¶
ترميز السلسلة المستخدم لفك ترميز
requests.Response.headersوrequests.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¶
إرسال طلب HTTP إلى
urlوإرجاعrequests.Response.method--- طريقة HTTP على هيئةstr(مثل"GET"و"POST").url--- عنوان URL الهدف. يجب أن يبدأ بـhttp://أوhttps://.data--- متن الطلب الخام. إذا ضُبط، تُضافContent-Lengthتلقائيًا.json--- كائن مُسلسل إلى JSON ومُرسَل كمتن. يضبطContent-Type: application/json.files--- قاموس يربط اسم الحقل بصف(filename, fileobj). يُرسَل على هيئةmultipart/form-data.headers--- قاموس بترويسات طلب إضافية.auth--- صف(username, password)لمصادقة HTTP الأساسية.stream--- مقبول من أجل التوافق مع الواجهة البرمجية؛ غير مستخدم.
- requests.head(url: str, **kw: Any) Response¶
إرسال طلب HTTP من نوع
HEADوإرجاعResponse.HEADمطابق لـGETإلا أن الخادم يرد بسطر الحالة والترويسات فقط؛ ويكون المتن فارغًا. استخدمه للتحقق من وجود مورد، أو لفحصContent-Length/Content-Typeدون تنزيل الحمولة، أو لاستكشاف عنوان URL قبل إصدار طلبGETأثقل.المعطيات:
url-- عنوان URL الهدف؛ يجب أن يبدأ بـhttp://أوhttps://.headers(وسيط مفتاحي) -- قاموس بترويسات طلب إضافية.auth(وسيط مفتاحي) -- صف(username, password)لمصادقة HTTP الأساسية.
يُقبل
data/json/files/streamمنrequest()من أجل الاكتمال، لكنها نادرًا ما تكون منطقية معHEAD.
- requests.get(url: str, **kw: Any) Response¶
إرسال طلب HTTP من نوع
GETوإرجاعResponse.GETهو الفعل القياسي لاسترجاع تمثيل المورد المحدد بـurl. وهو آمن (لا يسبب أي تغيير في حالة الخادم) وعديم التأثر بالتكرار (idempotent).المعطيات:
url-- عنوان URL الهدف؛ يجب أن يبدأ بـhttp://أوhttps://.headers(وسيط مفتاحي) -- قاموس بترويسات طلب إضافية (مثلAuthorizationأوAccept).auth(وسيط مفتاحي) -- صف(username, password)لمصادقة HTTP الأساسية.
يسمح
request()الأساسي بمتن طلب عبرdata/json، لكن معظم الخوادم تتجاهله.
- requests.post(url: str, **kw: Any) Response¶
إرسال طلب HTTP من نوع
POSTوإرجاعResponse.POSTيقدّم بيانات إلىurl، وعادةً ينشئ موردًا تابعًا جديدًا، أو يطلق إرسال نموذج، أو يستدعي إجراءً. وهو ليس آمنًا ولا عديم التأثر بالتكرار: قد تنشئ الاستدعاءات المتكررة موارد مكررة.المعطيات:
url-- عنوان URL الهدف؛ يجب أن يبدأ بـhttp://أوhttps://.data(وسيط مفتاحي) -- متن الطلب الخام (شبيه بـbytes). يرسل ترويسةContent-Lengthتلقائيًا.json(وسيط مفتاحي) -- كائن مُسلسل إلى JSON ومُرسَل كمتن. يضبطContent-Type: application/json.files(وسيط مفتاحي) -- قاموس يربط اسم حقل بـ(filename, fileobj). يُرسَل على هيئةmultipart/form-data.headers(وسيط مفتاحي) -- قاموس بترويسات طلب إضافية.auth(وسيط مفتاحي) -- صف(username, password)لمصادقة HTTP الأساسية.
مرّر واحدًا على الأكثر من
data/json/files.
- requests.put(url: str, **kw: Any) Response¶
إرسال طلب HTTP من نوع
PUTوإرجاعResponse.PUTيستبدل المورد عندurlبالتمثيل المقدَّم، وينشئه إن لم يكن موجودًا. وهو عديم التأثر بالتكرار: تكرارPUTمتطابق ينتج عنه نفس الحالة النهائية.المعطيات:
url-- عنوان URL الهدف؛ يجب أن يبدأ بـhttp://أوhttps://.data(وسيط مفتاحي) -- متن الاستبدال الخام (شبيه بـbytes).json(وسيط مفتاحي) -- كائن مُسلسل إلى JSON ومُرسَل كمتن استبدال. يضبطContent-Type: application/json.headers(وسيط مفتاحي) -- قاموس بترويسات طلب إضافية.auth(وسيط مفتاحي) -- صف(username, password)لمصادقة HTTP الأساسية.
مرّر إما
dataأوjsonلحمل التمثيل الجديد.
- requests.patch(url: str, **kw: Any) Response¶
إرسال طلب HTTP من نوع
PATCHوإرجاعResponse.PATCHيطبّق تعديلًا جزئيًا على المورد عندurl-- فقط الحقول الموجودة في متن الطلب تتغير. وعلى خلافPUT، ليس مطلوبًا أن يكون عديم التأثر بالتكرار (وإن جعلته كثير من الواجهات البرمجية كذلك).المعطيات:
url-- عنوان URL الهدف؛ يجب أن يبدأ بـhttp://أوhttps://.data(وسيط مفتاحي) -- متن الفرق الخام (شبيه بـbytes). يعتمد التنسيق على الخادم (مثل JSON Patch وJSON Merge Patch).json(وسيط مفتاحي) -- كائن الفرق مُسلسل إلى JSON. يضبطContent-Type: application/json.headers(وسيط مفتاحي) -- قاموس بترويسات طلب إضافية.auth(وسيط مفتاحي) -- صف(username, password)لمصادقة HTTP الأساسية.
- requests.delete(url: str, **kw: Any) Response¶
إرسال طلب HTTP من نوع
DELETEوإرجاعResponse.DELETEيطلب إزالة المورد عندurl. وهو عديم التأثر بالتكرار: حذف مورد محذوف بالفعل ليس خطأ (يُرجع الخادم عادةً 404، لكن الحالة النهائية متطابقة).المعطيات:
url-- عنوان URL الهدف؛ يجب أن يبدأ بـhttp://أوhttps://.headers(وسيط مفتاحي) -- قاموس بترويسات طلب إضافية.auth(وسيط مفتاحي) -- صف(username, password)لمصادقة HTTP الأساسية.
يسمح
request()الأساسي بمتن عبرdata/json، لكنه نادرًا ما يُستخدم معDELETE.