requests --- HTTP client¶
โมดูล 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 โดย Instance จะถูกส่งคืนโดย
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.Responsemethod--- เมธอด HTTP เป็นstr(เช่น"GET","POST")url--- URL เป้าหมาย ต้องเริ่มต้นด้วยhttp://หรือhttps://data--- เนื้อหาคำขอดิบ หากตั้งค่าแล้วContent-Lengthจะถูกเพิ่มโดยอัตโนมัติjson--- ออบเจกต์ที่จัดลำดับเป็น JSON และส่งเป็นเนื้อหา ตั้งค่าContent-Type: application/jsonfiles--- Dict ที่แมปชื่อฟิลด์ไปยัง tuple(filename, fileobj)ส่งเป็นmultipart/form-dataheaders--- Dict ของส่วนหัวคำขอเพิ่มเติมauth--- tuple(username, password)สำหรับการพิสูจน์ตัวตน HTTP Basicstream--- ยอมรับเพื่อความเข้ากันได้กับ API ไม่ถูกใช้งาน
- requests.head(url: str, **kw: Any) Response¶
ส่งคำขอ HTTP
HEADและส่งคืนResponseHEADเหมือนกับGETยกเว้นว่าเซิร์ฟเวอร์ตอบกลับด้วยเพียงบรรทัดสถานะและส่วนหัว เนื้อหาจะว่างเปล่า ใช้เพื่อตรวจสอบว่าทรัพยากรมีอยู่หรือไม่ ตรวจสอบContent-Length/Content-Typeโดยไม่ต้องดาวน์โหลดเพย์โหลด หรือตรวจสอบ URL ก่อนที่จะออกGETที่หนักกว่าอาร์กิวเมนต์:
url-- URL เป้าหมาย ต้องเริ่มต้นด้วยhttp://หรือhttps://headers(kwarg) -- dict ของส่วนหัวคำขอเพิ่มเติมauth(kwarg) -- tuple(username, password)สำหรับการพิสูจน์ตัวตน HTTP Basic
data/json/files/streamจากrequest()ได้รับการยอมรับเพื่อความครบถ้วน แต่แทบไม่ค่อยมีความหมายสำหรับHEAD
- requests.get(url: str, **kw: Any) Response¶
ส่งคำขอ HTTP
GETและส่งคืนResponseGETคือ verb มาตรฐานสำหรับดึงข้อมูลที่แสดงถึงทรัพยากรที่ระบุโดยurlเป็น safe (ไม่ก่อให้เกิดการเปลี่ยนแปลงสถานะฝั่งเซิร์ฟเวอร์) และ idempotentอาร์กิวเมนต์:
url-- URL เป้าหมาย ต้องเริ่มต้นด้วยhttp://หรือhttps://headers(kwarg) -- dict ของส่วนหัวคำขอเพิ่มเติม (ตัวอย่างเช่นAuthorizationหรือAccept)auth(kwarg) -- tuple(username, password)สำหรับการพิสูจน์ตัวตน HTTP Basic
เนื้อหาคำขอผ่าน
data/jsonได้รับอนุญาตโดยrequest()พื้นฐาน แต่ถูกละเว้นโดยเซิร์ฟเวอร์ส่วนใหญ่
- requests.post(url: str, **kw: Any) Response¶
ส่งคำขอ HTTP
POSTและส่งคืนResponsePOSTส่งข้อมูลไปยังurlโดยทั่วไปจะสร้างทรัพยากรลูกใหม่ กระตุ้นการส่งแบบฟอร์ม หรือเรียกใช้การดำเนินการ ไม่ใช่ทั้ง safe และ idempotent: การเรียกซ้ำอาจสร้างทรัพยากรซ้ำอาร์กิวเมนต์:
url-- URL เป้าหมาย ต้องเริ่มต้นด้วยhttp://หรือhttps://data(kwarg) -- เนื้อหาคำขอดิบ (คล้ายbytes) ส่งส่วนหัวContent-Lengthโดยอัตโนมัติjson(kwarg) -- ออบเจกต์ที่จัดลำดับเป็น JSON และส่งเป็นเนื้อหา ตั้งค่าContent-Type: application/jsonfiles(kwarg) -- dict ที่แมปชื่อฟิลด์ไปยัง(filename, fileobj)ส่งเป็นmultipart/form-dataheaders(kwarg) -- dict ของส่วนหัวคำขอเพิ่มเติมauth(kwarg) -- tuple(username, password)สำหรับการพิสูจน์ตัวตน HTTP Basic
ส่ง
data/json/filesได้อย่างมากหนึ่งรายการ
- requests.put(url: str, **kw: Any) Response¶
ส่งคำขอ HTTP
PUTและส่งคืนResponsePUTแทนที่ทรัพยากรที่urlด้วยข้อมูลที่ให้มา โดยสร้างขึ้นหากยังไม่มีอยู่ เป็น idempotent: การทำPUTที่เหมือนกันซ้ำจะได้สถานะสุดท้ายเดียวกันอาร์กิวเมนต์:
url-- URL เป้าหมาย ต้องเริ่มต้นด้วยhttp://หรือhttps://data(kwarg) -- เนื้อหาแทนที่ดิบ (คล้ายbytes)json(kwarg) -- ออบเจกต์ที่จัดลำดับเป็น JSON และส่งเป็นเนื้อหาแทนที่ ตั้งค่าContent-Type: application/jsonheaders(kwarg) -- dict ของส่วนหัวคำขอเพิ่มเติมauth(kwarg) -- tuple(username, password)สำหรับการพิสูจน์ตัวตน HTTP Basic
ส่ง
dataหรือjsonเพื่อพกพาข้อมูลแทนใหม่
- requests.patch(url: str, **kw: Any) Response¶
ส่งคำขอ HTTP
PATCHและส่งคืนResponsePATCHใช้การปรับเปลี่ยน บางส่วน กับทรัพยากรที่url-- เฉพาะฟิลด์ที่มีอยู่ในเนื้อหาคำขอเท่านั้นที่เปลี่ยนแปลง ต่างจากPUTไม่จำเป็นต้องเป็น idempotent (แม้ว่า API หลายตัวจะทำให้เป็นเช่นนั้น)อาร์กิวเมนต์:
url-- URL เป้าหมาย ต้องเริ่มต้นด้วยhttp://หรือhttps://data(kwarg) -- เนื้อหา delta ดิบ (คล้ายbytes) รูปแบบขึ้นอยู่กับเซิร์ฟเวอร์ (เช่น JSON Patch, JSON Merge Patch)json(kwarg) -- ออบเจกต์ delta ที่จัดลำดับเป็น JSON ตั้งค่าContent-Type: application/jsonheaders(kwarg) -- dict ของส่วนหัวคำขอเพิ่มเติมauth(kwarg) -- tuple(username, password)สำหรับการพิสูจน์ตัวตน HTTP Basic
- requests.delete(url: str, **kw: Any) Response¶
ส่งคำขอ HTTP
DELETEและส่งคืนResponseDELETEร้องขอการลบทรัพยากรที่urlเป็น idempotent: การลบทรัพยากรที่ถูกลบไปแล้วไม่ใช่ข้อผิดพลาด (เซิร์ฟเวอร์โดยทั่วไปจะส่งคืน 404 แต่สถานะสุดท้ายยังคงเหมือนกัน)อาร์กิวเมนต์:
url-- URL เป้าหมาย ต้องเริ่มต้นด้วยhttp://หรือhttps://headers(kwarg) -- dict ของส่วนหัวคำขอเพิ่มเติมauth(kwarg) -- tuple(username, password)สำหรับการพิสูจน์ตัวตน HTTP Basic
เนื้อหาผ่าน
data/jsonได้รับอนุญาตโดยrequest()พื้นฐาน แต่แทบไม่ค่อยใช้กับDELETE