- คำขอ Python คืออะไร?
- เหตุใดจึงต้องใช้คำขอ Python
- วิธีการติดตั้งคำขอ Python
- การรับและโพสต์คำขอ
- การส่งผ่านพารามิเตอร์ใน URL
- รหัสสถานะ
- เนื้อหาตอบกลับ
- อัปโหลดไฟล์หลายส่วน
- คุกกี้และส่วนหัว
- วัตถุเซสชัน
- ข้อผิดพลาดและข้อยกเว้น
คำขอ Python คืออะไร?
คำขอ Python เขียนโดย Kenneth Reitz และได้รับอนุญาตภายใต้ apache 2.0 เป็นไลบรารี HTTP ที่เป็นมิตรกับมนุษย์ตามที่กล่าวไว้ในหน้าเอกสารอย่างเป็นทางการ ใช้งานง่ายและโดยทั่วไปใช้สำหรับการร้องขอ HTTP ทุกประเภท ต่อไปนี้เป็นคุณสมบัติขั้นสูงบางประการที่ขอมาพร้อมกับ:- รักษาชีวิตและการเชื่อมต่อร่วมกัน
- โดเมนและ URL ระหว่างประเทศ
- เซสชันที่มีการคงอยู่ของคุกกี้
- การตรวจสอบ SSL แบบเบราว์เซอร์
- การถอดรหัสเนื้อหาอัตโนมัติ
- การพิสูจน์ตัวตนพื้นฐาน / แยกย่อย
- คุกกี้คีย์ / ค่าที่สวยงาม
- การบีบอัดอัตโนมัติ
- ร่างกายตอบสนอง Unicode
- การสนับสนุนพร็อกซี HTTPs
- การอัปโหลดไฟล์หลายส่วน
- การดาวน์โหลดสตรีมมิ่ง
- หมดเวลาการเชื่อมต่อ
- คำขอเป็นกลุ่ม
เหตุใดจึงต้องใช้คำขอ Python
ทำไมเราถึงใช้การร้องขอ python? เหตุผลนั้นค่อนข้างง่าย ในขณะที่ใช้คำขอ python คุณไม่จำเป็นต้องเพิ่มคำค้นหาลงใน URL และข้อมูลโพสต์ที่เข้ารหัสแบบฟอร์มด้วยตนเอง ทำให้งานของเราง่ายขึ้นเมื่อทำการร้องขอ http ทุกประเภทตอนนี้เราคุ้นเคยกับคำขอ python และเหตุใดเราจึงใช้มันใน python ลองทำความเข้าใจว่าเราจะติดตั้งคำขอในโครงการหรือระบบของเราอย่างไรวิธีการติดตั้งคำขอ Python
ในส่วนของการติดตั้งก็ง่ายมากเช่นกัน หากคุณติดตั้งการตั้งค่า pipenv ในระบบของคุณคุณสามารถเรียกใช้คำสั่งต่อไปนี้ในเทอร์มินัลคำขอติดตั้ง $ pip
จาวาสคริปต์คืออะไรสิ่งนี้จะติดตั้งไลบรารีคำขอในระบบของคุณ มีอีกหนึ่งวิธีในการติดตั้งคำขอ หากคุณใช้ pycharm คุณสามารถเพิ่มคำขอเกี่ยวกับตัวแปลโครงการในการตั้งค่า มีจุดประสงค์เดียวกับเทอร์มินัลในกรณีที่ติดตั้งไลบรารีในโครงการของเราตอนนี้เราผ่านการติดตั้งแล้วลองทำความเข้าใจว่าเราจะรับและโพสต์คำขอใน python ได้อย่างไร
วิธีรับและโพสต์คำขอ
รับคำขอโดยทั่วไปจะใช้เพื่อขอข้อมูลจากเซิร์ฟเวอร์ ต่อไปนี้เป็นไวยากรณ์ในการร้องขอรับคำขอนำเข้า res = request.get ('url') #res คือวัตถุตอบกลับที่นี่คำขอโพสต์ใช้เพื่อส่งข้อมูลที่จะประมวลผลไปยังเซิร์ฟเวอร์ ต่อไปนี้เป็นไวยากรณ์ในการขอโพสต์
payload คำขอนำเข้า = {'key1': 'value1'} res = request.post ('url', data = payload)ตอนนี้เรารู้แล้วว่าเราจะส่งคำขอรับและโพสต์ได้อย่างไรมาดูกันว่าเราจะส่งพารามิเตอร์ไปยัง url โดยใช้ get request ได้อย่างไร
การส่งผ่านพารามิเตอร์ใน URL
การส่งผ่านพารามิเตอร์ใน url นั้นทำได้ง่ายเพียงแค่ส่งคำขอ ต่อไปนี้เป็นตัวอย่างในการส่งผ่านพารามิเตอร์ไปยัง urlนำเข้าคำขอ payload = {'key1': 'value1', 'key2': 'value2'} res = request.get ('url', params = payload) print (res.url) #this จะพิมพ์ url พร้อมพารามิเตอร์ ผ่านคำขอรับ
รหัสสถานะ
เราสามารถตรวจสอบรหัสสถานะได้เช่นกันต่อไปนี้คือรหัสเพื่อตรวจสอบรหัสสถานะ:
คำขอนำเข้า res = request.get ('url') พิมพ์ (res.status_code ())หากรหัสส่งกลับ 200 หมายความว่าไม่มีข้อผิดพลาดใด ๆ และการร้องขอก็เป็นไปด้วยดี หากเราส่งคำขอที่ไม่ถูกต้องรหัสจะส่งคืนรหัสเช่น 404 หรือ 505 ซึ่งจะทำให้เกิดข้อผิดพลาด http
เนื้อหาตอบกลับ
นอกจากนี้เรายังสามารถอ่านเนื้อหาของการตอบสนองของเซิร์ฟเวอร์ ไลบรารีจะถอดรหัสเนื้อหาจากเซิร์ฟเวอร์โดยอัตโนมัติคำขอนำเข้า res = request.get ('url') พิมพ์ (res.content)
คำขอยังมีตัวถอดรหัส json ในตัว
คำขอนำเข้า res = request.get ('url') print (res.json ()) #this จะได้รับคำตอบในรูปแบบ json
อัปโหลดไฟล์หลายส่วน
การอัปโหลดไฟล์หลายส่วนโดยใช้คำขอเป็นเรื่องง่ายมากไฟล์คำขอนำเข้า = {'file': open ('filename', 'rb')} res = request.post ('url', files = files) print (res.text)สำหรับการส่งไฟล์หลายไฟล์เราจะระบุไฟล์หลายไฟล์ในพารามิเตอร์ไฟล์
คุกกี้และส่วนหัว
เราสามารถดูส่วนหัวการตอบสนองของเซิร์ฟเวอร์และคุกกี้โดยใช้ออบเจ็กต์ตอบกลับ ต่อไปนี้เป็นรหัสสำหรับดูส่วนหัวของเซิร์ฟเวอร์คำขอนำเข้า res = request.get ('url') พิมพ์ (res.headers)เราสามารถส่งส่วนหัวที่กำหนดเองไปยัง url ได้เช่นกัน มาดูรหัสกัน
ส่วนหัวของคำขอนำเข้า = {'key1': 'value1'} res = request.get ('url', headers = headers) พิมพ์ (res.headers)คำขอไม่เปลี่ยนพฤติกรรมตามส่วนหัวที่กำหนดเอง พวกเขาจะถูกส่งไปยังคำขอสุดท้าย คุ้กกี้ นอกจากนี้ยังสามารถดูได้โดยใช้วัตถุตอบกลับ
คำขอนำเข้า # เพื่อส่งผ่านคุกกี้ของเราเราสามารถใช้พารามิเตอร์คุกกี้ cookies = dict (cookies = 'working') res = request.get ('url', cookies = cookies) print (res.text)
คุกกี้จะถูกส่งคืนใน RequestCookieJar ซึ่งทำหน้าที่เหมือนพจนานุกรม แต่ยังมีอินเทอร์เฟซที่สมบูรณ์ยิ่งขึ้นเหมาะสำหรับใช้ในหลายโดเมนหรือเส้นทาง
ชนิดข้อมูลสำหรับวันที่ใน sql
วัตถุเซสชัน
อ็อบเจ็กต์เซสชันช่วยให้คุณสามารถคงพารามิเตอร์บางอย่างไว้ในคำร้องขอ- ยังคงมีคุกกี้ในคำขอทั้งหมดที่ทำจากอินสแตนซ์เซสชัน
- ใช้การรวมการเชื่อมต่อ urllib3
- ประสิทธิภาพที่เพิ่มขึ้นอย่างมีนัยสำคัญ
- วัตถุเซสชันมีวิธีการทั้งหมดของ API คำขอหลัก
s = request.session () s.get ('url') res = s.get ('url') พิมพ์ (res.text)
ข้อผิดพลาดและข้อยกเว้น
ต่อไปนี้เป็นข้อผิดพลาดและข้อยกเว้นที่เกิดขึ้นในคำขอหลาม- ในกรณีที่เครือข่ายมีปัญหาการร้องขอจะเพิ่มข้อยกเว้น ConnectionError
- Response.raise_for_status () จะเพิ่มข้อผิดพลาด HTTP เมื่อมีรหัสสถานะไม่สำเร็จ
- หากมีการหมดเวลาจะเพิ่มข้อยกเว้นการหมดเวลา
- ข้อยกเว้น TooManyRedirects จะเพิ่มขึ้นหากคำขอเกินจำนวนที่กำหนดไว้ของจำนวนการเปลี่ยนเส้นทางสูงสุด