Cách sử dụng Thư viện yêu cầu của Python cho HTTP

Thư viện requests ​​là một mô-đun Python phổ biến giúp đơn giản hóa quá trình tạo yêu cầu HTTP. Nó tóm tắt sự phức tạp của việc xử lý yêu cầu và phản hồi, giúp tương tác với các dịch vụ web và API dễ dàng hơn. Trong bài viết này, chúng ta sẽ khám phá những điều cơ bản về việc sử dụng thư viện requests, bao gồm cách gửi nhiều loại yêu cầu HTTP khác nhau và xử lý phản hồi.

Cài đặt Thư viện Yêu cầu

Trước khi bạn có thể sử dụng thư viện requests, bạn sẽ cần phải cài đặt nó. Bạn có thể cài đặt nó bằng cách sử dụng pip, trình quản lý gói Python. Chạy lệnh sau trong terminal của bạn:

pip install requests

Tạo một yêu cầu GET đơn giản

Yêu cầu HTTP cơ bản nhất là yêu cầu GET, yêu cầu này lấy dữ liệu từ máy chủ. Sau đây là cách bạn có thể sử dụng thư viện requests ​​để tạo yêu cầu GET:

import requests

response = requests.get('https://api.github.com')
print(response.status_code)
print(response.json())

Trong ví dụ này, chúng tôi gửi yêu cầu GET đến GitHub API và in mã trạng thái HTTP cùng nội dung phản hồi theo định dạng JSON.

Gửi yêu cầu POST

Yêu cầu POST được sử dụng để gửi dữ liệu đến máy chủ, chẳng hạn như gửi biểu mẫu. Sau đây là cách gửi yêu cầu POST bằng thư viện requests:

import requests

data = {'key1': 'value1', 'key2': 'value2'}
response = requests.post('https://httpbin.org/post', data=data)
print(response.status_code)
print(response.json())

Trong ví dụ này, chúng tôi gửi yêu cầu POST với một số dữ liệu biểu mẫu đến dịch vụ kiểm tra httpbin.org và in mã trạng thái phản hồi và nội dung.

Xử lý tham số truy vấn

Đôi khi bạn cần đưa tham số truy vấn vào yêu cầu của mình. Thư viện requests ​​giúp bạn dễ dàng thực hiện việc này bằng cách cho phép bạn truyền tham số dưới dạng từ điển:

import requests

params = {'search': 'python', 'page': 1}
response = requests.get('https://httpbin.org/get', params=params)
print(response.status_code)
print(response.url)

Trong ví dụ này, chúng tôi bao gồm các tham số truy vấn trong yêu cầu GET và in URL cuối cùng có chứa các tham số.

Làm việc với Tiêu đề

Bạn có thể cần bao gồm tiêu đề tùy chỉnh trong yêu cầu của mình, chẳng hạn như để xác thực hoặc để chỉ định loại nội dung. Sau đây là cách thêm tiêu đề vào yêu cầu của bạn:

import requests

headers = {'Authorization': 'Bearer YOUR_TOKEN'}
response = requests.get('https://api.github.com/user', headers=headers)
print(response.status_code)
print(response.json())

Trong ví dụ này, chúng tôi bao gồm tiêu đề xác thực trong yêu cầu gửi tới GitHub API và in mã trạng thái và nội dung phản hồi.

Xử lý thời gian chờ và ngoại lệ

Điều quan trọng là phải xử lý các vấn đề tiềm ẩn như thời gian chờ mạng và các ngoại lệ khác. Thư viện requests ​​cho phép bạn chỉ định thời gian chờ và bắt ngoại lệ:

import requests
from requests.exceptions import RequestException

try:
    response = requests.get('https://httpbin.org/delay/5', timeout=3)
    response.raise_for_status()
    print(response.status_code)
    print(response.text)
except RequestException as e:
    print(f'An error occurred: {e}')

Trong ví dụ này, chúng tôi đặt thời gian chờ cho yêu cầu và phát hiện bất kỳ ngoại lệ nào xảy ra, đồng thời in thông báo lỗi nếu có sự cố xảy ra.

Phần kết luận

Thư viện requests ​​là một công cụ mạnh mẽ và thân thiện với người dùng để tạo các yêu cầu HTTP trong Python. Cho dù bạn đang truy xuất dữ liệu từ API, gửi biểu mẫu hoặc xử lý tiêu đề tùy chỉnh, thư viện requests ​​giúp bạn dễ dàng thực hiện các tác vụ này chỉ với một vài dòng mã. Bằng cách nắm vững những kiến ​​thức cơ bản được đề cập trong bài viết này, bạn sẽ được trang bị tốt để tương tác với các dịch vụ web và API trong các dự án Python của mình.