requests — לקוח HTTP¶
המודול requests מספק API מינימלי של לקוח 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— מילון הממפה שם שדה ל-tuple מסוג(filename, fileobj). נשלח כ-multipart/form-data.headers— מילון של כותרות בקשה נוספות.auth— tuple מסוג(username, password)עבור אימות HTTP Basic.stream— מתקבל לצורך תאימות API; אינו בשימוש.
- requests.head(url: str, **kw: Any) Response¶
שליחת בקשת
HEADשל HTTP והחזרתResponse.HEADזהה ל-GETלמעט זאת שהשרת משיב בשורת המצב ובכותרות בלבד; הגוף ריק. השתמש בה כדי לבדוק אם משאב קיים, לבחוןContent-Length/Content-Typeללא הורדת ה-payload, או לבחון URL לפני הנפקתGETכבד יותר.ארגומנטים:
url– כתובת URL היעד; חייבת להתחיל ב-http://אוhttps://.headers(kwarg) – מילון של כותרות בקשה נוספות.auth(kwarg) – tuple מסוג(username, password)עבור אימות HTTP Basic.
data/json/files/streamמ-request()מתקבלים לשם שלמות אך לעיתים נדירות הגיוניים עבורHEAD.
- requests.get(url: str, **kw: Any) Response¶
שליחת בקשת
GETשל HTTP והחזרתResponse.GETהוא הפועל הסטנדרטי לאחזור ייצוג של המשאב המזוהה על ידיurl. הוא בטוח (אינו גורם לשינוי מצב בצד השרת) ואידמפוטנטי.ארגומנטים:
url– כתובת URL היעד; חייבת להתחיל ב-http://אוhttps://.headers(kwarg) – מילון של כותרות בקשה נוספות (לדוגמהAuthorizationאוAccept).auth(kwarg) – tuple מסוג(username, password)עבור אימות HTTP Basic.
גוף בקשה באמצעות
data/jsonמותר על ידיrequest()הבסיסי אך מתעלמים ממנו רוב השרתים.
- requests.post(url: str, **kw: Any) Response¶
שליחת בקשת
POSTשל HTTP והחזרתResponse.POSTמגיש נתונים אלurl, בדרך כלל יוצר משאב כפוף חדש, מפעיל הגשת טופס או מפעיל פעולה. הוא אינו בטוח ואינו אידמפוטנטי: קריאות חוזרות עשויות ליצור משאבים כפולים.ארגומנטים:
url– כתובת URL היעד; חייבת להתחיל ב-http://אוhttps://.data(kwarg) – גוף בקשה גולמי (דמויbytes). שולח כותרתContent-Lengthאוטומטית.json(kwarg) – אובייקט המסוריאליז ל-JSON ונשלח כגוף. מגדירContent-Type: application/json.files(kwarg) – מילון הממפה שם שדה ל-(filename, fileobj). נשלח כ-multipart/form-data.headers(kwarg) – מילון של כותרות בקשה נוספות.auth(kwarg) – tuple מסוג(username, password)עבור אימות HTTP Basic.
העבר לכל היותר אחד מבין
data/json/files.
- requests.put(url: str, **kw: Any) Response¶
שליחת בקשת
PUTשל HTTP והחזרתResponse.PUTמחליף את המשאב ב-urlבייצוג שסופק, ויוצר אותו אם אינו קיים. הוא אידמפוטנטי: חזרה עלPUTזהה מניבה את אותו מצב סופי.ארגומנטים:
url– כתובת URL היעד; חייבת להתחיל ב-http://אוhttps://.data(kwarg) – גוף החלפה גולמי (דמויbytes).json(kwarg) – אובייקט המסוריאליז ל-JSON ונשלח כגוף ההחלפה. מגדירContent-Type: application/json.headers(kwarg) – מילון של כותרות בקשה נוספות.auth(kwarg) – tuple מסוג(username, password)עבור אימות HTTP Basic.
העבר
dataאוjsonכדי לשאת את הייצוג החדש.
- requests.patch(url: str, **kw: Any) Response¶
שליחת בקשת
PATCHשל HTTP והחזרתResponse.PATCHמחיל שינוי חלקי על המשאב ב-url– רק השדות הכלולים בגוף הבקשה משתנים. בניגוד ל-PUT, אין דרישה שיהיה אידמפוטנטי (אם כי ממשקי API רבים עושים אותו ככזה).ארגומנטים:
url– כתובת URL היעד; חייבת להתחיל ב-http://אוhttps://.data(kwarg) – גוף דלתא גולמי (דמויbytes). הפורמט תלוי בשרת (למשל JSON Patch, JSON Merge Patch).json(kwarg) – אובייקט דלתא המסוריאליז ל-JSON. מגדירContent-Type: application/json.headers(kwarg) – מילון של כותרות בקשה נוספות.auth(kwarg) – tuple מסוג(username, password)עבור אימות HTTP Basic.
- requests.delete(url: str, **kw: Any) Response¶
שליחת בקשת
DELETEשל HTTP והחזרתResponse.DELETEמבקש הסרה של המשאב ב-url. הוא אידמפוטנטי: מחיקת משאב שכבר נמחק אינה שגיאה (השרת בדרך כלל מחזיר 404, אך המצב הסופי זהה).ארגומנטים:
url– כתובת URL היעד; חייבת להתחיל ב-http://אוhttps://.headers(kwarg) – מילון של כותרות בקשה נוספות.auth(kwarg) – tuple מסוג(username, password)עבור אימות HTTP Basic.
גוף באמצעות
data/jsonמותר על ידיrequest()הבסיסי אך לעיתים נדירות בשימוש עםDELETE.