W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
如快速入門中所述,可以通過將包含有效負載名稱的字典作為鍵傳遞,并將元素元組或類似文件的對象或字符串作為值來使用多部分文件編碼。
>>> files = {'upload-file': ('report.xls', open('report.xls', 'rb'), 'application/vnd.ms-excel')}
>>> r = httpx.post("https://httpbin.org/post", files=files)
>>> print(r.text)
{
...
"files": {
"upload-file": "<... binary content ...>"
},
...
}
更具體地說,如果將元組用作值,則它必須具有 2 到 3 個元素:
None
?。 UTF-8
?自動編碼。application/octet-stream
?”。如果文件名顯式設置為?None
?,則 HTTPX 將不包含內(nèi)容類型 MIME 標頭字段。>>> files = {'upload-file': (None, 'text content', 'text/plain')}
>>> r = httpx.post("https://httpbin.org/post", files=files)
>>> print(r.text)
{
...
"files": {},
"form": {
"upload-file": "text-content"
},
...
}
提示
以這種方式上傳大文件是安全的。默認情況下,文件上傳是流式傳輸?shù)?,這意味著一次只有一個塊將加載到內(nèi)存中。
通過將非文件數(shù)據(jù)字段傳遞給?data=...
?,可以使用它們包含在多部分表單中。
您還可以使用多文件字段表單一次性發(fā)送多個文件。為此,請傳遞?(field, <file>)
?項目列表而不是字典,從而允許您傳遞具有相同?field
?.例如,此請求發(fā)送 2 個文件,?foo.png
?和?bar.png
?并在images表單字段上的一個請求中發(fā)送:
>>> files = [('images', ('foo.png', open('foo.png', 'rb'), 'image/png')),
('images', ('bar.png', open('bar.png', 'rb'), 'image/png'))]
>>> r = httpx.post("https://httpbin.org/post", files=files)
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: