首頁 >後端開發 >Python教學 >Python 請求 - 帶有標頭和正文的 POST 請求

Python 請求 - 帶有標頭和正文的 POST 請求

PHPz
PHPz轉載
2023-09-02 12:21:021402瀏覽

Python 请求 - 带有标头和正文的 POST 请求

Python 的 requests 函式庫是一個強大的工具,可以以簡單且有效率的方式發出 HTTP 請求。它提供了一個易於使用的介面,用於向 Web 伺服器發送 GET、POST 和其他類型的請求。在發出 POST 請求時,通常需要包含標頭和請求正文,其中包含供伺服器處理的額外資訊和資料。

在本文中,我們將探討如何使用 requests 函式庫發出帶有標頭和正文的 POST 請求。我們將介紹標頭和請求主體的基本概念,示範它們在 requests.post() 方法中的用法,並討論處理回應和錯誤的最佳實踐。

設定環境

在我們深入使用 Python 中的請求庫發出帶有標頭和請求正文的 POST 請求之前,讓我們確保我們的環境已正確設定。以下是要遵循的步驟 -

安裝請求庫

  • 如果您使用的是 Python 3 或更高版本,則 requests 程式庫未與標準程式庫捆綁在一起,因此您需要單獨安裝它。開啟終端機或命令提示字元並執行以下命令:

pip install requests
  • 如果您使用的是具有整合終端的 IDE 或程式碼編輯器,則可以直接從編輯器內的終端面板安裝該程式庫。

導入請求模組

安裝程式庫後,請確保在 Python 腳本開頭或互動式 Python 環境中匯入 requests 模組:

import requests

安裝並匯入請求庫後,您現在就可以發出帶有標頭和請求正文的 POST 請求了。

在下一節中,我們將探討如何建構標頭和請求內文,然後繼續使用 requests.post() 方法發出實際的 POST 請求。

建構標頭和請求內文

要發出帶有標頭和請求正文的 POST 請求,我們需要在使用 requests.post() 方法發送請求之前建構標頭和正文。讓我們逐步分解這個過程:

建構標頭

  • 標頭提供有關請求的其他信息,例如身份驗證憑證、內容類型或使用者代理。我們可以將標頭作為字典傳遞給 requests.post() 方法的 headers 參數,從而在 POST 請求中包含標頭。

  • 要建構標頭,請建立一個字典,其中所需的標頭名稱作為鍵,其對應的值作為值。這是一個例子 -

headers = {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer your_token_here'
}
  • 將「application/json」替換為適合您的請求的內容類型,並將「your_token_here」替換為實際的授權令牌(如果需要)。

建構請求正文

  • 請求內文包含我們想要作為 POST 請求的一部分所傳送的資料。它可以採用多種格式,例如 JSON、表單資料或純文字。格式的選擇取決於伺服器的期望。

  • 要建構請求正文,請使用所需資料建立字典或資料結構。這是一個使用 JSON 格式的範例 -

#
import json

payload = {
    'name': 'John Doe',
    'email': 'johndoe@example.com'
}

json_payload = json.dumps(payload)
  • 在此範例中,我們使用一些範例資料建立一個字典有效負載。然後,我們使用 json.dumps() 將字典轉換為 JSON 字串表示形式,這是在請求正文中發送 JSON 資料所必需的。

在下一節中,我們將把建置的標頭和請求內文放在一起,並使用 requests.post() 方法發出實際的 POST 請求。

發出 POST 請求

現在我們已經建立了標頭和請求正文,我們可以繼續使用 requests.post() 方法發出實際的 POST 請求。操作方法如下:

指定 URL

  • 首先指定要將 POST 請求傳送到的 URL。將下面程式碼片段中的「https://api.example.com/endpoint」替換為您的實際網址。

url = 'https://api.example.com/endpoint'

發出 POST 請求

  • 使用requests.post()方法傳送POST請求。將 URL、標頭和請求內文作為參數傳遞。

import requests

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

處理回應

  • requests.post() 方法傳回一個 Response 對象,其中包含伺服器對我們的請求的回應。

  • 我們可以使用 Response 物件的各種屬性和方法來存取回應狀態碼、回應標頭和回應正文。這是一個例子:

print(response.status_code)
print(response.headers)
print(response.text)

錯誤處理

  • 處理請求期間可能發生的任何潛在錯誤都非常重要。如果請求不成功(狀態碼 >= 400),您可以使用 response.raise_for_status() 引發例外狀況。

response.raise_for_status()

透過執行以下步驟,您可以使用 Python 中的請求庫有效地發出帶有標頭和請求正文的 POST 請求。

带有标头和正文的 POST 请求

为了演示如何使用请求来发出带有标头和正文的 POST 请求,让我们考虑一个将 JSON 负载发送到 API 端点的示例。这是完整的代码

示例

import requests
import json

# Set up the URL
url = 'https://api.example.com/endpoint'

# Set up the headers
headers = {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer your_token'
}

# Set up the request body
payload = {
    'name': 'John Doe',
    'email': 'johndoe@example.com',
    'age': 30
}
json_payload = json.dumps(payload)

# Make the POST request
response = requests.post(url, headers=headers, data=json_payload)

# Check the response
if response.status_code == 200:
    print('Request successful!')
    print(response.json())
else:
    print('Request failed!')
    print(response.text)

让我们分解一下代码

  • 我们导入必要的模块 请求用于发出 HTTP 请求和 json 用于处理 JSON 数据

  • 我们设置要将 POST 请求发送到的 URL。

  • 我们定义标头,包括指定我们发送 JSON 数据的“Content-Type”标头以及“Authorization”标头(如果 API 需要)。

  • 我们将请求正文设置为 Python 字典,然后使用 json.dumps() 将其转换为 JSON 字符串。

  • 我们使用 requests.post() 发出 POST 请求,并将 URL、标头和请求正文作为参数传递。

  • 我们检查响应状态代码。如果是 200(表示请求成功),我们将打印响应 JSON。否则,我们将打印响应文本以识别任何错误。

此示例演示如何使用 Python 中的请求库发出带有标头和请求正文的 POST 请求。请随意根据您的具体要求自定义代码。

结论

在本文中,我们探讨了如何使用 Python 中的 requests 库发出带有标头和请求正文的 POST 请求。通过安装 requests 库并了解其依赖关系,我们了解了设置环境的重要性。

在本文中,我们探讨了如何使用 Python 中的 requests 库发出带有标头和请求正文的 POST 请求。通过安装 requests 库并了解其依赖关系,我们了解了设置环境的重要性。

然后,我们运行了一个完整的示例,演示了发送 JSON 有效负载作为请求正文并在请求中包含标头的过程。我们逐步浏览了代码并详细讨论了每个组件。

以上是Python 請求 - 帶有標頭和正文的 POST 請求的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除