คำขอ - การทำงานกับคำขอ
ในบทนี้เราจะเข้าใจวิธีการทำงานกับโมดูลคำขอ เราจะพิจารณาสิ่งต่อไปนี้ -
- การร้องขอ HTTP
- การส่งผ่านพารามิเตอร์ไปยังคำขอ HTTP
การร้องขอ HTTP
ในการสร้างคำขอ Http เราต้องนำเข้าโมดูลคำขอก่อนตามที่แสดงด้านล่าง -
import requests
ตอนนี้ให้เราดูวิธีโทรไปที่ URL โดยใช้โมดูลคำขอ
ให้เราใช้ URL - https://jsonplaceholder.typicode.com/users ในโค้ดเพื่อทดสอบโมดูลคำขอ
ตัวอย่าง
import requests
getdata = requests.get('https://jsonplaceholder.typicode.com/users')
print(getdata.status_code)
URL - https://jsonplaceholder.typicode.com/usersถูกเรียกโดยใช้วิธีการ request.get () ออบเจ็กต์ตอบกลับของ URL ถูกเก็บไว้ในตัวแปร getdata เมื่อเราพิมพ์ตัวแปรจะให้รหัสตอบกลับ 200 ซึ่งหมายความว่าเราได้รับการตอบสนองเรียบร้อยแล้ว
เอาต์พุต
E:\prequests>python makeRequest.py
<Response [200]>
ในการรับเนื้อหาจากการตอบกลับเราสามารถทำได้โดยใช้ getdata.content ดังแสดงด้านล่าง -
ตัวอย่าง
import requests
getdata = requests.get('https://jsonplaceholder.typicode.com/users')
print(getdata.content)
getdata.content จะพิมพ์ข้อมูลทั้งหมดที่มีอยู่ในการตอบกลับ
เอาต์พุต
E:\prequests>python makeRequest.py
b'[\n {\n "id": 1,\n "name": "Leanne Graham",\n "username": "Bret",\n
"email": "[email protected]",\n "address": {\n "street": "Kulas Light
",\n "suite": "Apt. 556",\n "city": "Gwenborough",\n "zipcode": "
92998-3874",\n "geo": {\n "lat": "-37.3159",\n "lng": "81.149
6"\n }\n },\n "phone": "1-770-736-8031 x56442",\n "website": "hild
egard.org",\n "company": {\n "name": "Romaguera-Crona",\n "catchPhr
ase": "Multi-layered client-server neural-net",\n "bs": "harness real-time
e-markets"\n }\n }
การส่งผ่านพารามิเตอร์ไปยังคำขอ HTTP
เพียงแค่ขอ URL นั้นไม่เพียงพอเราต้องส่งพารามิเตอร์ไปยัง URL ด้วย
พารามิเตอร์ส่วนใหญ่จะถูกส่งผ่านเป็นคู่คีย์ / ค่าเช่น -
https://jsonplaceholder.typicode.com/users?id=9&username=Delphine
ดังนั้นเราจึงมี id = 9 และ username = Delphine ตอนนี้จะดูวิธีส่งข้อมูลดังกล่าวเพื่อขอโมดูล Http
ตัวอย่าง
import requests
payload = {'id': 9, 'username': 'Delphine'}
getdata = requests.get('https://jsonplaceholder.typicode.com/users',
params = payload)
print(getdata.content)
รายละเอียดจะถูกเก็บไว้ในส่วนของวัตถุในคู่คีย์ / ค่าและส่งผ่านไปยัง params ภายในเมธอด get ()
เอาต์พุต
E:\prequests>python makeRequest.py
b'[\n {\n "id": 9,\n "name": "Glenna Reichert",\n "username": "Delphin
e",\n "email": "[email protected]",\n "address": {\n "street":
"Dayna Park",\n "suite": "Suite 449",\n "city": "Bartholomebury",\n
"zipcode": "76495-3109",\n "geo": {\n "lat": "24.6463",\n
"lng": "-168.8889"\n }\n },\n "phone": "(775)976-6794 x41206",\n "
website": "conrad.com",\n "company": {\n "name": "Yost and Sons",\n
"catchPhrase": "Switchable contextually-based project",\n "bs": "aggregate
real-time technologies"\n }\n }\n]'
ขณะนี้เราได้รับรายละเอียดของ id = 9 และ username = Delphine รายละเอียดในการตอบกลับ
หากคุณต้องการดูว่า URL มีลักษณะอย่างไรหลังจากส่งผ่านพารามิเตอร์โดยใช้ออบเจ็กต์ตอบกลับไปยัง URL
ตัวอย่าง
import requests
payload = {'id': 9, 'username': 'Delphine'}
getdata = requests.get('https://jsonplaceholder.typicode.com/users',
params = payload)
print(getdata.url)
เอาต์พุต
E:\prequests>python makeRequest.py
https://jsonplaceholder.typicode.com/users?id=9&username=Delphine