關於傳送資料,Requests提供以下幾種方式
遇到需要傳送大檔案可以考慮使用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)