2012-10-22 18 views
9

Sto tentando di caricare un file utilizzando requests. Ho bisogno di caricare un file PDF e allo stesso tempo inviare altri dati al modulo come il nome dell'autore.Caricamento di file tramite richieste e invio di dati aggiuntivi

ho provato questo:

requests.get(url, files = {"file":open("file.txt"), "author" : "me" }) 

Ma non invia i dati al form.

+3

Un esempio è dato in [documentazione] (http://requests.readthedocs.org/en/latest/user/quickstart/#post-a-multipart-encoded-file). Hai problemi con questo? –

+0

@BurhanKhalid, per favore guarda di nuovo la domanda –

risposta

14

Quindi ho capito che vuoi caricare su un URL, un file pdf insieme ad alcuni parametri aggiuntivi.

Il primo errore che si verifica è che si utilizza .get() e non .post().

Sto utilizzando campioni dallo documentation, che dovresti passare. Questo dovrebbe iniziare:

>>> url = 'http://httpbin.org/post' 
>>> files = {'file': open('somefile.pdf', 'rb')} 
>>> values = {'author': 'John Smith'} 
>>> r = requests.post(url, files=files, data=values) 
+0

Mi viene chiesto di fare questo 'Fai una richiesta di post in più parti a http: // server-url/oauth /. con i seguenti campi modulo. AUTHOR, PDF FILE' –

+1

dovrei aggiungere il file nel parametro 'data' dict.?/? –

+0

No, aggiungilo al parametro 'files', il parametro' data' è per i dati del modulo. –

Problemi correlati