Rumah > Soal Jawab > teks badan
P粉4222270232023-08-17 12:40:36
(2018) Pustaka permintaan Python baharu memudahkan proses ini, kita boleh menggunakan pembolehubah 'fail' untuk menunjukkan bahawa kita ingin memuat naik fail berkod berbilang bahagian
url = 'http://httpbin.org/post' files = {'file': open('report.xls', 'rb')} r = requests.post(url, files=files) r.text
P粉5904283572023-08-17 11:32:38
Jika upload_file
merujuk kepada fail, gunakan:
files = {'upload_file': open('file.txt','rb')} values = {'DB': 'photcat', 'OUT': 'csv', 'SHORT': 'short'} r = requests.post(url, files=files, data=values)
Kemudian permintaan
akan menghantar badan permintaan POST borang berbilang bahagian dengan requests
将发送一个多部分表单POST请求体,其中upload_file
字段设置为file.txt
medan ditetapkan kepada kandungan fail file.txt
.
Nama fail akan disertakan dalam pengepala mime medan tertentu:
>>> import requests >>> open('file.txt', 'wb') # 创建一个空的演示文件 <_io.BufferedWriter name='file.txt'> >>> files = {'upload_file': open('file.txt', 'rb')} >>> print(requests.Request('POST', 'http://example.com', files=files).prepare().body.decode('ascii')) --c226ce13d09842658ffbd31e0563c6bd Content-Disposition: form-data; name="upload_file"; filename="file.txt" --c226ce13d09842658ffbd31e0563c6bd--
Sila beri perhatian kepada filename="file.txt"
parameter.
Jika anda memerlukan lebih kawalan, anda boleh menggunakan tupel sebagai files
nilai peta, panjang tupel hendaklah antara 2 dan 4. Elemen pertama ialah nama fail, diikuti dengan kandungan, secara pilihan termasuk pemetaan pengepala jenis kandungan dan pengepala lain:
files = {'upload_file': ('foobar.txt', open('file.txt','rb'), 'text/x-spam')}
Ini akan menetapkan nama fail alternatif dan jenis kandungan, mengetepikan pengepala pilihan.
Jika anda mahu keseluruhan isi permintaan POST datang daripada fail (tiada medan lain dinyatakan), jangan gunakan parameter files
参数,直接将文件作为data
进行POST。您可能还希望设置一个Content-Type
dan POS fail terus sebagai Content-Type
, jika tidak, tiada pengepala akan ditetapkan. Lihat Permintaan Python - SIARAN data daripada fail.