Thư viện Requests là một tiêu chuẩn de facto để thực hiện các yêu cầu HTTP trong Python. Với API đơn giản và dễ sử dụng, Requests giúp bạn tập trung vào việc tương tác với các dịch vụ và xử lý dữ liệu trong ứng dụng của mình, thay vì phải loay hoay với các phức tạp của giao thức HTTP.
Trong bài viết này, bạn sẽ được hướng dẫn các tính năng cơ bản và quan trọng của Requests, cùng với các cách tùy chỉnh để tối ưu hóa cho các tình huống thực tế. Bạn cũng sẽ học cách sử dụng Requests một cách hiệu quả và tránh các yêu cầu HTTP làm chậm ứng dụng của bạn.
Nội dung bạn sẽ học:
- Gửi các yêu cầu HTTP phổ biến như GET và POST
- Tùy chỉnh tiêu đề (header) và dữ liệu trong yêu cầu
- Kiểm tra và phân tích dữ liệu từ phản hồi (response)
- Xử lý các yêu cầu có xác thực
- Tối ưu hóa yêu cầu để ứng dụng không bị chậm
Hãy sẵn sàng bắt đầu khám phá Requests và ứng dụng vào các dự án Python của bạn nhé!
Cài đặt và sử dụng thư viện Requests
Thư viện Requests không được tích hợp sẵn trong thư viện tiêu chuẩn của Python, vì vậy bạn cần cài đặt nó trước khi sử dụng. Để cài đặt Requests, bạn có thể sử dụng lệnh sau trong terminal hoặc CMD:
python -m pip install requests
Sau khi cài đặt thành công, bạn có thể nhập thư viện này vào mã nguồn của mình:
import requests
Vậy là bạn đã sẵn sàng để sử dụng Requests. Bây giờ, hãy bắt đầu với thao tác đơn giản nhất: gửi yêu cầu GET.
Yêu cầu GET
GET là một trong những phương thức HTTP phổ biến nhất, dùng để truy vấn hoặc lấy dữ liệu từ một tài nguyên cụ thể. Để gửi một yêu cầu GET bằng Requests, bạn chỉ cần gọi hàm requests.get()
với URL của tài nguyên:
import requests
phan_hoi = requests.get("https://api.github.com")
print(phan_hoi)
Khi chạy đoạn mã trên, bạn sẽ nhận được một phản hồi dưới dạng <Response [200]>
. Điều này có nghĩa là yêu cầu GET đã thành công (status code 200).
Phân tích Phản hồi (Response)
Khi bạn nhận được phản hồi từ server, nó được biểu diễn dưới dạng một đối tượng Response
. Đối tượng này chứa rất nhiều thông tin hữu ích, ví dụ như mã trạng thái (status code), nội dung trả về, và nhiều thứ khác.
1. Mã trạng thái (Status Code)
Mã trạng thái cho bạn biết kết quả của yêu cầu. Ví dụ:
200 OK
: Yêu cầu thành công.404 NOT FOUND
: Không tìm thấy tài nguyên.500 INTERNAL SERVER ERROR
: Lỗi từ phía server.
Bạn có thể truy cập mã trạng thái qua thuộc tính .status_code
:
if phan_hoi.status_code == 200:
print("Yêu cầu thành công!")
elif phan_hoi.status_code == 404:
print("Không tìm thấy tài nguyên!")
Hoặc đơn giản hơn, bạn có thể sử dụng đối tượng Response
trong biểu thức điều kiện, vì nó sẽ tự động đánh giá True
nếu mã trạng thái nằm trong khoảng từ 200 đến 399:
if phan_hoi:
print("Yêu cầu thành công!")
else:
print(f"Lỗi xảy ra: {phan_hoi.status_code}")
2. Kiểm tra lỗi tự động với .raise_for_status()
Nếu bạn muốn chương trình tự động báo lỗi khi xảy ra vấn đề với yêu cầu HTTP (mã trạng thái từ 400 trở lên), bạn có thể dùng phương thức .raise_for_status()
:
import requests
from requests.exceptions import HTTPError
try:
phan_hoi = requests.get("https://api.github.com/invalid")
phan_hoi.raise_for_status()
except HTTPError as loi_http:
print(f"Lỗi HTTP xảy ra: {loi_http}")
else:
print("Yêu cầu thành công!")
Phương thức này rất hữu ích khi bạn muốn xử lý lỗi một cách chuyên nghiệp và rõ ràng.
Tổng kết phần 1
Trong bài viết này, bạn đã học cách:
- Cài đặt và sử dụng thư viện Requests.
- Gửi yêu cầu GET để lấy dữ liệu từ server.
- Kiểm tra mã trạng thái và xử lý phản hồi.
Trong phần tiếp theo, chúng ta sẽ tìm hiểu cách:
- Tùy chỉnh tiêu đề và dữ liệu của yêu cầu.
- Xử lý nội dung trả về từ server.
- Thực hiện các yêu cầu có xác thực.
Nếu bạn muốn học Python một cách dễ dàng và thú vị, hãy tham gia khóa học “Học Python cơ bản thông qua lập trình 1 game“ của tôi! Khóa học không chỉ giúp bạn làm quen với ngôn ngữ lập trình mà còn hướng dẫn cách tạo ra một trò chơi của riêng mình.
Hãy chờ đón phần tiếp theo để tiếp tục hành trình khám phá thư viện Requests! 🚀