超文本傳輸協議(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。在下面的示例中,request方法使用查詢字串中的值來完成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
上一篇:
Python HTTP標頭
下一篇:
Python請求狀態代碼