切換語言為:簡體

如何用 Python 的 requests 庫傳送 JSON 資料的 POST 請求

  • 爱糖宝
  • 2024-06-14
  • 2098
  • 0
  • 0

在現代 Web 開發中,客戶端與伺服器之間進行資料交換的需求越來越普遍。而在 Python 這個強大的程式語言中,requests 庫是一個廣泛使用且功能強大的 HTTP 請求庫。特別是在進行 API 呼叫時,傳送 POST 請求並附帶 JSON 資料是一個非常常見的需求。

什麼是 POST 請求?

POST 請求是一種用於向伺服器傳送資料的 HTTP 方法。與 GET 請求不同,POST 請求通常用於提交表單資料,上傳檔案,或者在 RESTful APIs 中建立新資源。傳送 JSON 資料的 POST 請求,在 Web APIs 呼叫中尤為常見。

準備工作:安裝和引入 requests 庫

在開始之前,請確保你的計算機上已經安裝了 Python,並且可以使用 pip 命令。如果你還沒有安裝 requests 庫,可以透過以下命令安裝:

pip install requests

安裝完成後,在你的 Python 指令碼中引入 requests 庫:

import requests

傳送 JSON 資料的 POST 請求步驟

接下來,讓我們一步步看看如何傳送 JSON 資料的 POST 請求。

1. 定義目標 URL

首先,需要定義你要傳送請求的目標 URL:

url = 'https://httpbin.org/post'

2. 準備要傳送的 JSON 資料

接下來,準備你要傳送的 JSON 資料。可以使用 Python 的內建字典來表示 JSON 資料:

data = {
    "name": "John Doe",
    "email": "john.doe@example.com",
    "age": 30
}

3. 傳送 POST 請求幷包含 JSON 資料

在 requests 庫中,透過 post 方法可以輕鬆傳送 POST 請求,並且可以使用 json 引數直接傳遞 JSON 資料:

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

4. 處理響應

一般來說,伺服器會返回一個響應物件。你可以透過該物件訪問響應的狀態碼、響應體等資訊:

if response.status_code == 200:
    print('Request was successful.')
    print('Response JSON:', response.json())
else:
    print(f'Request failed with status code {response.status_code}')

至此,你已經成功使用 requests 庫傳送了一次包含 JSON 資料的 POST 請求。在實際應用中,你還可以結合錯誤處理、認證等功能來應對更復雜的請求。

一個完整的例子

爲了讓你更好地理解,下面是一個完整的示例程式碼:

import requests

# 目標 URL
url = 'https://httpbin.org/post'

# 準備 JSON 資料
data = {
    "name": "John Doe",
    "email": "john.doe@example.com",
    "age": 30
}

try:
    # 傳送 POST 請求
    response = requests.post(url, json=data)
    
    # 檢查響應狀態碼
    if response.status_code == 200:
        print('Request was successful.')
        print('Response JSON:', response.json())
    else:
        print(f'Request failed with status code {response.status_code}')
except requests.exceptions.RequestException as e:
    print('An error occurred:', e)

如何一鍵釋出 JSON 資料

對於需要傳送 JSON 格式資料的使用者來說,Apifox 提供了非常便捷的功能。使用者只需在請求體(Body)部分選擇 JSON 格式,無需手動設定 HTTP 頭部資訊,即可輕鬆傳送 POST 請求。如下圖所示,選擇 “POST” 為 HTTP 方法,然後在 “Body” 選項卡中選擇 JSON 格式,即可完成設定併發送請求。

如何用 Python 的 requests 庫傳送 JSON 資料的 POST 請求

自動生成 Python 請求程式碼的功能

此外,Apifox 提供一個非常實用的特性——自動生成 Python 程式碼。這一功能尤其適合不希望花時間手動編寫程式碼的開發者。透過簡單的設定,您可以快速獲取可用的請求實現程式碼。

操作步驟一:在 Apifox 中找到您之前儲存的 API 請求,移動滑鼠到右側面板的“生成介面請求程式碼”,然後點選生成客戶端程式碼。

如何用 Python 的 requests 庫傳送 JSON 資料的 POST 請求

操作步驟二:在彈出的程式碼生成視窗中選擇 “Python” 和 “Requests”,系統會自動為您生成基於 Requests 庫的 Python 程式碼。

如何用 Python 的 requests 庫傳送 JSON 資料的 POST 請求

總結

使用 requests 庫傳送 JSON 資料的 POST 請求是一個非常簡單且實用的操作。透過將目標 URL 和 JSON 資料傳遞給 requests.post 方法,你可以輕鬆傳送請求並處理響應。本篇文章介紹了從安裝 requests 庫,到傳送 JSON 資料的 POST 請求,再到處理響應的整個流程。希望這篇文章能幫助你更好地理解並應用這個強大的 HTTP 請求庫。

0則評論

您的電子郵件等資訊不會被公開,以下所有項目均必填

OK! You can skip this field.