iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 14
0
自我挑戰組

Why it works: python requests and urllib3系列 第 14

Day14-Requests-The User Guide-Quickstart-2

  • 分享至 

  • xImage
  •  

接著,開始說明如何針對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的資料,基本上分為三種類型

  • 'Content-Type': 'application/x-www-form-urlencoded'
    • 使用data參數
  • 'Content-Type': 'application/json'
    • 使用json參數
  • 'Content-Type': 'multipart/form-data'
    • 使用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

參考


上一篇
Day13-Requests-The User Guide-Quickstart-1
下一篇
Day15-Requests-The User Guide-Quickstart-3
系列文
Why it works: python requests and urllib330
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言