C'est une façon d'envoyer un fichier dans une requête multipart.
import requests
headers = {"Authorization": "Bearer <token>"}
myfile = 'file.txt'
myfile2 = {'file': (myfile, open(myfile, 'rb'),'application/octet-stream')}
url = 'https://example.com/path'
r = requests.post(url, files=myfile2, headers=headers,verify=False)
print(r.content)
Autre approche
import requests
url = "https://example.com/path"
payload={}
files=[
('file',('file',open('/path/to/file','rb'),'application/octet-stream'))
]
headers = {
'Authorization': 'Bearer <token>'
}
response = requests.request("POST", url, headers=headers, data=payload, files=files)
print(response.text)
J'ai testé les deux, les deux fonctionnent bien.
0 votes
Votre question n'est pas vraiment claire. Que voulez-vous obtenir ? Souhaitez-vous envoyer des données "multipart/form-data" sans téléchargement de fichier dans le formulaire ?
4 votes
Le fait que
files
est utilisé pour faire les deux est une très mauvaise API. J'ai soulevé un problème intitulé Envoi de données multipart - nous avons besoin d'une meilleure API pour régler ce problème. Si vous êtes d'accord pour dire que l'utilisationfiles
Le paramètre permettant d'envoyer des données en plusieurs parties est, au mieux, trompeur. Veuillez demander la modification de l'API dans la question ci-dessus.0 votes
@PiotrDobrogost ce problème est clos. N'encouragez pas les gens à commenter les questions fermées, qu'elles soient pertinentes ou non.
1 votes
C'est pas grave, je viens de réaliser que ton commentaire a été posté avant la fermeture. Je déteste que StackOverflow ne garde pas les choses dans l'ordre chronologique.
1 votes
Vérifier cette réponse stackoverflow.com/a/64586578/8826047 La frontière est importante !