接著,開始說明如何針對request的HTTP Header和Body客製化。
Custom Headers的部分可以自行指定,並提醒在某些情況下的優先權重會比較低。
從官方範例也可以知道客製Header的key是可以不區分大小寫的(CaseInsensitive)
url = 'https://api.github.com/some/endpoint'
headers = {'user-agent': 'my-app/0.0.1'}
r = requests.get(url, headers=headers)
再來是POST時可以根據需求產生不同Content-Type
的資料,基本上分為三種類型
data
參數json
參數files
參數application/x-www-form-urlencoded的類型當中,一鍵多值可以使用兩種形式的資料: a list of tuples or a dictionary with lists as values
# a list of tuples
payload_tuples = [('key1', 'value1'), ('key1', 'value2')]
# a dictionary with lists as values
payload = {'key1': 'value1', 'key2': 'value2', 'key3': ['value3-1', 'value3-2']}
r = requests.post("https://httpbin.org/post", data=payload)
若需要用multipart/form-data類型傳送大容量檔案,目前requests並不支援,官方建議使用requests-toolbelt