Python - Yêu cầu HTTP tùy chỉnh

Giao thức truyền siêu văn bản (HTTP) là một giao thức được sử dụng để kích hoạt giao tiếp giữa máy khách và máy chủ. Nó hoạt động như một giao thức phản hồi yêu cầu giữa máy khách và máy chủ. Thiết bị yêu cầu được gọi là máy khách và thiết bị gửi phản hồi được gọi là máy chủ.

Urllib là thư viện python truyền thống được sử dụng trong các chương trình python để xử lý các yêu cầu http. Nhưng bây giờ có urllib3 làm được nhiều hơn những gì urllib từng làm. Chúng tôi nhập thư viện urllib3 để xem cách python có thể sử dụng nó để thực hiện yêu cầu http và nhận phản hồi. Chúng tôi có thể tùy chỉnh loại yêu cầu bằng cách chọn phương thức yêu cầu.

Pip install urllib3

Thí dụ

Trong ví dụ dưới đây, chúng tôi sử dụng đối tượng PoolManager () để xử lý các chi tiết kết nối của yêu cầu http. Tiếp theo, chúng ta sử dụng đối tượng request () để thực hiện một yêu cầu http với phương thức POST. Cuối cùng chúng ta cũng sử dụng thư viện json để in các giá trị nhận được ở định dạng 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']

Khi chúng tôi chạy chương trình trên, chúng tôi nhận được kết quả sau:

{field': value'}

URL sử dụng truy vấn

Chúng tôi cũng có thể chuyển các tham số truy vấn để tạo URL tùy chỉnh. Trong ví dụ dưới đây, phương thức yêu cầu sử dụng các giá trị trong chuỗi truy vấn để hoàn thành URL có thể được sử dụng thêm bởi một hàm khác trong chương trình 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)

Khi chúng tôi chạy chương trình trên, chúng tôi nhận được kết quả sau:

https://pixabay.com/en/photos/?q=river&min_width=800&min_height=600&order=popular