2013-11-27 13 views
5

Voglio richiedere al mio server in esecuzione in Python pallone con il file e alcune meta informazioni. Quindi la mia richiesta content-Type sarà 'multipart/form-data. C'è un modo in cui posso impostare il tipo di contenuto del file come immagine/jpg, image/gif ecc ... Come faccio a impostare il tipo di contenuto per il file. E 'possibile o noContent-Type in per singoli file in richieste python

+0

Hai provato qualcosa? Questo suona come qualcosa che sarebbe stato spiegato nella documentazione. –

+0

@SimeonVisser: Sebbene sia possibile, è * not * documentato ovunque, in realtà. –

+0

@MartijnPieters: abbastanza giusto, sembra che tu abbia risposto alla domanda qui sotto. –

risposta

13

Se si effettua ogni specifica del file una tupla, è possibile specificare il tipo MIME come un terzo parametro:

files = { 
    'file1': ('foo.gif', open('foo.gif', 'rb'), 'image/gif'), 
    'file2': ('bar.png', open('bar.png', 'rb'), 'image/png'), 
} 
response = requests.post(url, files=files) 

si può dare un 4 ° parametro pure, che deve essere un dizionario con intestazioni aggiuntive per ogni parte.

+0

Non è più valido con la versione recente di Richieste – Khertan

+1

@ Khertan: cosa te lo fa pensare? La [documentazione] (http://docs.python-requests.org/en/latest/user/advanced/#post-multiple-multipart-encoded-files) è sempre la stessa. È possibile utilizzare sia una sequenza di tuple '(chiave, fileinfo)' come mostrato qui e un dizionario che utilizzo qui. –

+1

@ Khertan: Ho appena provato di nuovo questo con il ramo master, e questo funziona ancora come mostro qui. –