Python - คำขอ HTTP ที่กำหนดเอง
Hypertext Transfer Protocol (HTTP) เป็นโปรโตคอลที่ใช้เพื่อเปิดใช้งานการสื่อสารระหว่างไคลเอนต์และเซิร์ฟเวอร์ ทำงานเป็นโปรโตคอลตอบสนองคำขอระหว่างไคลเอนต์และเซิร์ฟเวอร์ อุปกรณ์ที่ร้องขอเรียกว่าไคลเอนต์และอุปกรณ์ที่ส่งการตอบกลับเรียกว่าเซิร์ฟเวอร์
urllib เป็นไลบรารี python แบบดั้งเดิมซึ่งใช้ในโปรแกรม python เพื่อจัดการคำขอ http แต่ตอนนี้มี urllib3 ซึ่งทำมากกว่า urllib ที่เคยทำ เรานำเข้าไลบรารี urllib3 เพื่อดูว่า python สามารถใช้เพื่อสร้างคำขอ http และรับการตอบกลับได้อย่างไร เราสามารถกำหนดประเภทคำขอได้เองโดยเลือกวิธีการร้องขอ
Pip install urllib3
ตัวอย่าง
ในตัวอย่างด้านล่างเราใช้ออบเจ็กต์ PoolManager () ซึ่งดูแลรายละเอียดการเชื่อมต่อของคำขอ http ต่อไปเราใช้ออบเจ็กต์ request () เพื่อสร้างคำขอ http ด้วยวิธีการ POST สุดท้ายเรายังใช้ไลบรารี json เพื่อพิมพ์ค่าที่ได้รับในรูปแบบ json
import urllib3
import json
http = urllib3.PoolManager()
r = http.request(
'POST',
'http://httpbin.org/post',
fields={'field': 'value'})
print json.loads(r.data.decode('utf-8'))['form']
เมื่อเรารันโปรแกรมข้างต้นเราจะได้ผลลัพธ์ดังต่อไปนี้ -
{field': value'}
URL โดยใช้แบบสอบถาม
เรายังสามารถส่งผ่านพารามิเตอร์การค้นหาเพื่อสร้าง URL ที่กำหนดเอง ในตัวอย่างด้านล่างวิธีการร้องขอจะใช้ค่าในสตริงการสืบค้นเพื่อเติม URL ให้สมบูรณ์ซึ่งฟังก์ชันอื่นในโปรแกรม python สามารถใช้เพิ่มเติมได้
import requests
query = {'q': 'river', 'order': 'popular', 'min_width': '800', 'min_height': '600'}
req = requests.get('https://pixabay.com/en/photos/', params=query)
print(req.url)
เมื่อเรารันโปรแกรมข้างต้นเราจะได้ผลลัพธ์ดังต่อไปนี้ -
https://pixabay.com/en/photos/?q=river&min_width=800&min_height=600&order=popular