Maison > Questions et réponses > le corps du texte
P粉4222270232023-08-17 12:40:36
(2018) La nouvelle bibliothèque de requêtes Python simplifie ce processus, nous pouvons utiliser la variable 'files' pour indiquer que nous voulons télécharger un fichier codé en plusieurs parties
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
Si upload_file
fait référence à un fichier, utilisez :
files = {'upload_file': open('file.txt','rb')} values = {'DB': 'photcat', 'OUT': 'csv', 'SHORT': 'short'} r = requests.post(url, files=files, data=values)
Ensuite, requests
enverra un corps de requête POST de formulaire en plusieurs parties avec les requests
将发送一个多部分表单POST请求体,其中upload_file
字段设置为file.txt
champs définis sur le contenu du fichier file.txt
.
Le nom du fichier sera inclus dans l'en-tête MIME du champ spécifique :
>>> 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--
Veuillez faire attention aux filename="file.txt"
paramètres.
Si vous avez besoin de plus de contrôle, vous pouvez utiliser des tuples comme valeurs de files
carte, la longueur du tuple doit être comprise entre 2 et 4. Le premier élément est le nom du fichier, suivi du contenu, incluant éventuellement un mappage des en-têtes de type de contenu et d'autres en-têtes :
files = {'upload_file': ('foobar.txt', open('file.txt','rb'), 'text/x-spam')}
Cela définira un nom de fichier et un type de contenu alternatifs, en omettant les en-têtes facultatifs.
Si vous souhaitez que l'intégralité du corps de la requête POST provienne d'un fichier (aucun autre champ n'est spécifié), n'utilisez pas le paramètre files
参数,直接将文件作为data
进行POST。您可能还希望设置一个Content-Type
et POSTez le fichier directement en tant que données
. Vous souhaiterez peut-être également définir un en-tête Content-Type
, sinon aucun en-tête ne sera défini. Voir Requêtes Python - Données POST à partir d'un fichier.