Python - 自定義 HTTP 請求



超文字傳輸協議 (HTTP) 是一種用於啟用客戶端和伺服器之間通訊的協議。它作為客戶端和伺服器之間的請求-響應協議工作。請求裝置稱為客戶端,傳送響應的裝置稱為伺服器。

urllib 是傳統的 Python 庫,在 Python 程式中用於處理 http 請求。但現在有 urllib3,它比 urllib 做得更多。我們匯入 urllib3 庫來了解 Python 如何使用它來發出 http 請求並接收響應。我們可以透過選擇請求方法來自定義請求型別。

Pip install urllib3

示例

在下面的示例中,我們使用 PoolManager() 物件來處理 http 請求的連線詳細資訊。接下來,我們使用 request() 物件使用 POST 方法發出 http 請求。最後,我們還使用 json 庫以 json 格式列印接收到的值。

import urllib3
import json

http = urllib3.PoolManager()
r = http.request(
    'POST',
    'http://httpbin.org/post',
    fields={'field': 'value'})
print json.loads(r.data.decode('utf-8'))['form']

執行上述程式後,我們將獲得以下輸出 -

{field': value'}

使用查詢的 URL

我們還可以傳遞查詢引數來構建自定義 URL。在下面的示例中,請求方法使用查詢字串中的值來完成 URL,該 URL 可以由 Python 程式中的另一個函式進一步使用。

import requests
 
query = {'q': 'river', 'order': 'popular', 'min_width': '800', 'min_height': '600'}
req = requests.get('https://pixabay.com/en/photos/', params=query)
 
print(req.url)

執行上述程式後,我們將獲得以下輸出 -

https://pixabay.com/en/photos/?q=river&min_width=800&min_height=600&order=popular
廣告