Apidog

Nền tảng phát triển API hợp tác tất cả trong một

Thiết kế API

Tài liệu API

Gỡ lỗi API

Giả lập API

Kiểm thử API tự động

Python Requests: Cách Gửi Dữ Liệu JSON Bằng POST Một Cách Dễ Dàng Năm 2024

Học cách sử dụng Python Requests để POST dữ liệu JSON dễ dàng vào năm 2024. Hướng dẫn chi tiết của chúng tôi sẽ giúp bạn bắt đầu với thư viện mạnh mẽ này và làm cho các cuộc gọi API của bạn hiệu quả hơn. Đọc tiếp để tìm hiểu thêm!

Minh Triết

Minh Triết

Updated on tháng 11 29, 2024

Bạn có đang tìm cách gửi dữ liệu JSON đến máy chủ bằng Python Requests không? Nếu có, bạn đang ở đúng nơi! Trong bài viết blog này, chúng ta sẽ cùng nhau tìm hiểu cách sử dụng Python Requests để gửi dữ liệu JSON qua POST. Chúng ta sẽ đề cập đến mọi thứ từ những kiến thức cơ bản về việc gửi yêu cầu POST đến việc xử lý phản hồi nhận được từ máy chủ, và cả việc xử lý lỗi có thể xảy ra trên đường đi. Vậy, hãy bắt đầu nào!

Python Requests

Python Requests là một thư viện Python 3.7+ giúp đơn giản hóa quá trình gửi yêu cầu HTTP/1.1. Nó cung cấp một API đơn giản để tương tác với các phương thức HTTP như GET, POST, PUT, PATCH và nhiều hơn nữa.

Python Requests: Phương thức HTTP POST

Đoạn mã sau đây minh họa cách sử dụng thư viện requests để gửi một yêu cầu HTTP POST:

import requests

url = 'https://www.example.com/api'
data = {'username': 'my_username', 'password': 'my_password'}
response = requests.post(url, data=data)

print(response.status_code)
print(response.content)

Trong ví dụ này, chúng ta đang gửi một yêu cầu HTTP POST đến https://www.example.com/api với một tải JSON chứa tên người dùng và mật khẩu. Phương thức requests.post() được sử dụng để gửi yêu cầu, và mã trạng thái phản hồi cùng nội dung được in ra console.

Bạn có thể cài đặt thư viện requests bằng cách sử dụng lệnh sau:

python -m pip install requests

Trong bài viết blog này, chúng ta sẽ tập trung vào cách sử dụng Python Requests để gửi yêu cầu POST với dữ liệu JSON.

JSON là gì?

JSON là viết tắt của JavaScript Object Notation. Đây là một định dạng tiêu chuẩn để đại diện cho dữ liệu có cấu trúc. Nó là một định dạng dựa trên văn bản sử dụng văn bản có thể đọc được bằng mắt thường để lưu trữ và truyền tải các đối tượng dữ liệu bao gồm các cặp thuộc tính-giá trị và mảng (hoặc các giá trị có thể tuần tự hóa khác). JSON thường được sử dụng để truyền tải dữ liệu trong các ứng dụng web, chẳng hạn như gửi dữ liệu từ máy chủ đến khách hàng, hoặc ngược lại.

JSON có thể đại diện cho sáu loại dữ liệu một cách tự nhiên: chuỗi, số, boolean, null, mảng và đối tượng. Ví dụ, đây là một đại diện JSON của một bài viết blog:

{
  "id": 1001,
  "title": "What is JSON?",
  "author": {
    "id": 1,
    "name": "James Walker"
  },
  "tags": [
    "api",
    "json",
    "programming"
  ],
  "published": false,
  "publishedTimestamp": null
}

Ví dụ này thể hiện tất cả các loại dữ liệu JSON. Nó cũng minh họa sự ngắn gọn của dữ liệu định dạng JSON, một trong những đặc điểm khiến nó trở nên hấp dẫn cho việc sử dụng trong các API.

Nói một cách khác, đây là một định dạng trao đổi dữ liệu nhẹ, dễ đọc và viết cho con người, và dễ dàng cho máy móc phân tích và sinh ra. JSON là một định dạng văn bản hoàn toàn độc lập với ngôn ngữ, khiến nó trở thành một lựa chọn lý tưởng cho việc trao đổi dữ liệu giữa các ngôn ngữ lập trình khác nhau.

Hiểu phương thức yêu cầu POST

Một yêu cầu POST là một loại phương thức yêu cầu HTTP được sử dụng để gửi dữ liệu đến một máy chủ nhằm tạo hoặc cập nhật một tài nguyên. Nó thường được sử dụng khi tải lên một tệp hoặc khi gửi một biểu mẫu web đã hoàn thành. Phương thức yêu cầu POST yêu cầu một máy chủ web chấp nhận dữ liệu được đóng gói trong nội dung của thông điệp yêu cầu, rất có thể để lưu trữ nó.

Định dạng tiêu chuẩn của JSON để đại diện cho các đối tượng và dữ liệu khiến nó trở thành một lựa chọn phổ biến để gửi dữ liệu trong các yêu cầu POST. Bằng cách sử dụng JSON, các nhà phát triển có thể đảm bảo rằng dữ liệu gửi đến máy chủ được tổ chức tốt và dễ hiểu, nâng cao hiệu quả trong việc tạo và cập nhật tài nguyên.

Yêu cầu POST

Ngược lại với phương thức yêu cầu HTTP GET, mà lấy thông tin từ máy chủ, phương thức yêu cầu POST yêu cầu một máy chủ web chấp nhận dữ liệu được đóng gói trong nội dung của thông điệp yêu cầu, rất có thể để lưu trữ nó. Một lượng dữ liệu bất kỳ loại nào cũng có thể được gửi đến máy chủ trong nội dung của thông điệp yêu cầu.

Dưới đây là ví dụ về cách sử dụng thư viện requests để gửi yêu cầu HTTP POST:

import requests

url = 'https://www.example.com/api'
data = {'username': 'my_username', 'password': 'my_password'}
response = requests.post(url, data=data)

print(response.status_code)
print(response.content)

Trong ví dụ này, chúng ta đang gửi một yêu cầu HTTP POST đến https://www.example.com/api với một tải JSON chứa tên người dùng và mật khẩu. Phương thức requests.post() được sử dụng để gửi yêu cầu, và mã trạng thái phản hồi cùng nội dung được in ra console.

Cách sử dụng Python Requests để gửi dữ liệu JSON qua POST?

Bây giờ chúng ta đã có một hiểu biết cơ bản về Python Requests và JSON, hãy cùng tìm hiểu cách sử dụng Python Requests để gửi dữ liệu JSON qua POST. Dưới đây là một ví dụ về cách làm điều đó:

import requests
import json

url = 'https://www.example.com/api'
data = {'username': 'my_username', 'password': 'my_password'}
headers = {'Content-type': 'application/json'}
response = requests.post(url, data=json.dumps(data), headers=headers)

print(response.status_code)
print(response.content)

Trong ví dụ này, chúng ta đang gửi một yêu cầu HTTP POST đến https://www.example.com/api với một tải JSON chứa tên người dùng và mật khẩu. Phương thức requests.post() được sử dụng để gửi yêu cầu, và mã trạng thái phản hồi cùng nội dung được in ra console. Lưu ý rằng chúng ta đang sử dụng phương thức json.dumps() để chuyển đổi từ điển data thành một chuỗi JSON trước khi gửi nó trong nội dung yêu cầu.

Bạn có thể cài đặt thư viện requests bằng cách sử dụng lệnh sau:

python -m pip install requests

Xử lý phản hồi

Sau khi gửi yêu cầu POST, chúng ta sẽ nhận được phản hồi từ máy chủ. Chúng ta có thể xử lý phản hồi bằng cách sử dụng đối tượng response mà chúng ta đã tạo trước đó. Dưới đây là một ví dụ về cách xử lý phản hồi:

import requests

url = 'https://www.example.com/api'
data = {'username': 'my_username', 'password': 'my_password'}
headers = {'Content-type': 'application/json'}

response = requests.post(url, json=data, headers=headers)

if response.status_code == 200:
    print('Thành công!')
else:
    print('Đã xảy ra lỗi.')

Trong ví dụ này, chúng ta kiểm tra mã trạng thái của phản hồi để xem yêu cầu có thành công không. Nếu mã trạng thái là 200, chúng ta sẽ in “Thành công!”. Ngược lại, chúng ta sẽ in “Đã xảy ra lỗi.”.

Xử lý lỗi

Đôi khi, mọi thứ không diễn ra như kế hoạch. Trong trường hợp xảy ra lỗi khi gửi yêu cầu POST, chúng ta sẽ muốn xử lý nó một cách duyên dáng. Dưới đây là một ví dụ về cách xử lý lỗi:

import requests

url = 'https://www.example.com/api'
data = {'username': 'my_username', 'password': 'my_password'}
headers = {'Content-type': 'application/json'}

try:
    response = requests.post(url, json=data, headers=headers)
    response.raise_for_status()
except requests.exceptions.HTTPError as err:
    print(err)

Trong ví dụ này, chúng ta đang sử dụng khối try/except để bắt bất kỳ lỗi nào có thể xảy ra khi gửi yêu cầu POST. Nếu có lỗi xảy ra, chúng ta sẽ in thông điệp lỗi.

Cách gửi yêu cầu POST Python với dữ liệu JSON trong Apidog?

Apidog là một giải pháp kiểm tra mạnh mẽ cung cấp cho các nhà phát triển trải nghiệm kiểm tra giao diện đáng tin cậy hơn. Các tính năng tiên tiến như tạo các trường hợp thử nghiệm tùy chỉnh, tạo báo cáo và kiểm tra tải giúp các nhà phát triển có sự linh hoạt và khả năng lớn hơn trong quy trình làm việc của họ. So với Postman, Apidog nổi bật như một giải pháp kiểm tra toàn diện và mạnh mẽ hơn.

button

Để gửi một yêu cầu POST với dữ liệu JSON trong Apidog, hãy làm theo các bước sau:

Bước 1: Mở Apidog và tạo một yêu cầu mới.

Bước 2: Nhấp vào thẻ Yêu cầu và chọn POST từ menu thả xuống.

Bước 3: Nhập URL của điểm cuối API mà bạn muốn kiểm tra, in phần Headers, thêm bất kỳ tiêu đề nào cần thiết. Trong phần Body, chọn JSON từ menu thả xuống và nhập dữ liệu JSON bạn muốn gửi trong nội dung yêu cầu.

Bước 4: Nhấp vào nút Gửi để gửi yêu cầu và kiểm tra phản hồi.

Vậy là xong! Bạn đã thành công gửi yêu cầu POST Python với dữ liệu JSON trong Apidog.

button

Kết luận

Trong bài viết blog này, chúng ta đã đề cập đến cách sử dụng Python Requests để gửi dữ liệu JSON qua POST. Chúng ta đã đi qua các kiến thức cơ bản về việc gửi yêu cầu POST, xử lý phản hồi và xử lý lỗi. Chúng tôi hy vọng rằng bài viết blog này đã hữu ích cho bạn và rằng giờ đây bạn có thể sử dụng Python Requests để gửi dữ liệu JSON qua POST một cách dễ dàng!