2013-11-27 36 views
5

Chcę zażądać dostępu do mojego serwera działającego w kolbie Pythona z plikiem i niektórymi metadanymi. W związku z tym moje żądanie typu-treści będzie "wieloczęściowe/dane-formularze". Czy istnieje sposób, aby ustawić typ zawartości pliku jak image/jpg, image/gif etc ... Jak ustawić typ zawartości dla pliku. Czy to możliwe, lub nieTreść - wpisz pojedyncze pliki w pytaniach.

+0

Czy próbowałeś czegoś? Brzmi to jak coś, co zostanie wyjaśnione w dokumentacji. –

+0

@SimeonVisser: Chociaż jest to możliwe, faktycznie jest * nie * udokumentowane nigdzie. –

+0

@MartijnPieters: Wystarczająco, wygląda na to, że odpowiedziałeś na poniższe pytanie. –

Odpowiedz

13

Jeśli uczynić Plik specyfikacji krotki, można określić typ MIME jako trzeci parametr:

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) 

można dać 4th parametr, jak również, który musi być słownikiem z dodatkowymi nagłówkami dla każdej części.

+0

Nie jest już aktualny w przypadku ostatniej wersji Żądania – Khertan

+1

@Khertan: dlaczego tak sądzisz? Dokumentacja (http://docs.python-requests.org/en/latest/user/advanced/#post-multiple-multipart-encoded-files) jest wciąż taka sama. Możesz użyć zarówno sekwencji krotek '(key, fileinfo)' jak pokazano tam i słownika, którego tutaj używam. –

+1

@Khertan: Po prostu spróbowałem tego ponownie z master branch, i to nadal działa tak, jak tu pokazuję. –