iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 18
0
自我挑戰組

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

Day18-Requests-The User Guide-Advanced Usage-3

  • 分享至 

  • xImage
  •  

關於傳送資料,Requests提供以下幾種方式

  • Streaming Uploads, which allow you to send large streams or files without reading them into memory
  • Chunked Transfer Encoding for outgoing and incoming requests.
  • Multiple Multipart-Encoded Files

遇到需要傳送大檔案可以考慮使用Streaming Upload,使用方式只要在data提供檔案物件即可
特別注意的是需要以binary mode開啟檔案

with open('massive-body', 'rb') as f:
    requests.post('http://some.url/streamed', data=f)

若要達成Chunked transfer encoding for outgoing的話,使用方式只要在data提供generator即可

def gen():
    yield 'hi'
    yield 'there'

requests.post('http://some.url/chunked', data=gen())

若要達成多檔上傳,使用方式只要在files提供List,內容為(form_field_name, file_info)的Tuple

multiple_files = [
        ('images', ('foo.png', open('foo.png', 'rb'), 'image/png')),
        ('images', ('bar.png', open('bar.png', 'rb'), 'image/png'))]
r = requests.post(url, files=multiple_files)

參考


上一篇
Day17-Requests-The User Guide-Advanced Usage-2
下一篇
Day19-Requests-The User Guide-Advanced Usage-4
系列文
Why it works: python requests and urllib330
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言