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 และตัวช่วยต่อเมธอด

status_code: int

รหัสสถานะ HTTP จำนวนเต็มที่ส่งคืนโดยเซิร์ฟเวอร์

reason: str

วลีเหตุผลที่ส่งคืนโดยเซิร์ฟเวอร์ (str ที่ถอดรหัสแล้ว)

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 --- Dict ที่แมปชื่อฟิลด์ไปยัง tuple (filename, fileobj) ส่งเป็น multipart/form-data

  • headers --- Dict ของส่วนหัวคำขอเพิ่มเติม

  • auth --- tuple (username, password) สำหรับการพิสูจน์ตัวตน HTTP Basic

  • stream --- ยอมรับเพื่อความเข้ากันได้กับ API ไม่ถูกใช้งาน

requests.head(url: str, **kw: Any) Response

ส่งคำขอ HTTP HEAD และส่งคืน Response

HEAD เหมือนกับ 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 และส่งคืน Response

GET คือ 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 และส่งคืน Response

POST ส่งข้อมูลไปยัง url โดยทั่วไปจะสร้างทรัพยากรลูกใหม่ กระตุ้นการส่งแบบฟอร์ม หรือเรียกใช้การดำเนินการ ไม่ใช่ทั้ง safe และ idempotent: การเรียกซ้ำอาจสร้างทรัพยากรซ้ำ

อาร์กิวเมนต์:

  • url -- URL เป้าหมาย ต้องเริ่มต้นด้วย http:// หรือ https://

  • data (kwarg) -- เนื้อหาคำขอดิบ (คล้าย bytes) ส่งส่วนหัว Content-Length โดยอัตโนมัติ

  • json (kwarg) -- ออบเจกต์ที่จัดลำดับเป็น JSON และส่งเป็นเนื้อหา ตั้งค่า Content-Type: application/json

  • files (kwarg) -- dict ที่แมปชื่อฟิลด์ไปยัง (filename, fileobj) ส่งเป็น multipart/form-data

  • headers (kwarg) -- dict ของส่วนหัวคำขอเพิ่มเติม

  • auth (kwarg) -- tuple (username, password) สำหรับการพิสูจน์ตัวตน HTTP Basic

ส่ง data / json / files ได้อย่างมากหนึ่งรายการ

requests.put(url: str, **kw: Any) Response

ส่งคำขอ HTTP PUT และส่งคืน Response

PUT แทนที่ทรัพยากรที่ url ด้วยข้อมูลที่ให้มา โดยสร้างขึ้นหากยังไม่มีอยู่ เป็น idempotent: การทำ PUT ที่เหมือนกันซ้ำจะได้สถานะสุดท้ายเดียวกัน

อาร์กิวเมนต์:

  • url -- URL เป้าหมาย ต้องเริ่มต้นด้วย http:// หรือ https://

  • data (kwarg) -- เนื้อหาแทนที่ดิบ (คล้าย bytes)

  • json (kwarg) -- ออบเจกต์ที่จัดลำดับเป็น JSON และส่งเป็นเนื้อหาแทนที่ ตั้งค่า Content-Type: application/json

  • headers (kwarg) -- dict ของส่วนหัวคำขอเพิ่มเติม

  • auth (kwarg) -- tuple (username, password) สำหรับการพิสูจน์ตัวตน HTTP Basic

ส่ง data หรือ json เพื่อพกพาข้อมูลแทนใหม่

requests.patch(url: str, **kw: Any) Response

ส่งคำขอ HTTP PATCH และส่งคืน Response

PATCH ใช้การปรับเปลี่ยน บางส่วน กับทรัพยากรที่ url -- เฉพาะฟิลด์ที่มีอยู่ในเนื้อหาคำขอเท่านั้นที่เปลี่ยนแปลง ต่างจาก PUT ไม่จำเป็นต้องเป็น idempotent (แม้ว่า API หลายตัวจะทำให้เป็นเช่นนั้น)

อาร์กิวเมนต์:

  • url -- URL เป้าหมาย ต้องเริ่มต้นด้วย http:// หรือ https://

  • data (kwarg) -- เนื้อหา delta ดิบ (คล้าย bytes) รูปแบบขึ้นอยู่กับเซิร์ฟเวอร์ (เช่น JSON Patch, JSON Merge Patch)

  • json (kwarg) -- ออบเจกต์ delta ที่จัดลำดับเป็น JSON ตั้งค่า Content-Type: application/json

  • headers (kwarg) -- dict ของส่วนหัวคำขอเพิ่มเติม

  • auth (kwarg) -- tuple (username, password) สำหรับการพิสูจน์ตัวตน HTTP Basic

requests.delete(url: str, **kw: Any) Response

ส่งคำขอ HTTP DELETE และส่งคืน Response

DELETE ร้องขอการลบทรัพยากรที่ url เป็น idempotent: การลบทรัพยากรที่ถูกลบไปแล้วไม่ใช่ข้อผิดพลาด (เซิร์ฟเวอร์โดยทั่วไปจะส่งคืน 404 แต่สถานะสุดท้ายยังคงเหมือนกัน)

อาร์กิวเมนต์:

  • url -- URL เป้าหมาย ต้องเริ่มต้นด้วย http:// หรือ https://

  • headers (kwarg) -- dict ของส่วนหัวคำขอเพิ่มเติม

  • auth (kwarg) -- tuple (username, password) สำหรับการพิสูจน์ตัวตน HTTP Basic

เนื้อหาผ่าน data / json ได้รับอนุญาตโดย request() พื้นฐาน แต่แทบไม่ค่อยใช้กับ DELETE