2015-03-17 31 views
7

pracuję z WeChat API ... tutaj mam przesłać obraz do WeChat na serwer przy użyciu tego API http://admin.wechat.com/wiki/index.php?title=Transferring_Multimedia_FilesZaładuj obraz przy użyciu danych formularza POST w Pythonie wniosków

url = 'http://file.api.wechat.com/cgi-bin/media/upload?access_token=%s&type=image'%access_token 
    files = { 
     'file': (filename, open(filepath, 'rb'), 
     'Content-Type': 'image/jpeg', 
     'Content-Length': l 
    } 
    r = requests.post(url, files=files) 

jestem nie jest w stanie odpowiedzieć dane

Odpowiedz

17

Od WeChat api doc:

curl -F [email protected] "http://file.api.wechat.com/cgi-bin/media/upload?access_token=ACCESS_TOKEN&type=TYPE" 

przetłumaczyć polecenia wyżej pytona:

import requests 
url = 'http://file.api.wechat.com/cgi-bin/media/upload?access_token=ACCESS_TOKEN&type=TYPE' 
files = {'media': open('test.jpg', 'rb')} 
requests.post(url, files=files) 
+0

Mam problem z kompilacją api-rest, gdy próbuję wysłać żądanie, odpowiedź brzmi "wiadomość": "Brak obrazu w żądaniu danych formularza", moja prośba jest następna: curl - X POST - nagłówek "Content-Type: multipart/form-data" --head er "Zaakceptuj: application/json" --header "api_key: zzzz" --header "Content-Type: image/jpg" - nagłówek "Content-Disposition: form-data" -F media = 2016-09-14-154558.jpg "xxxx" –

+0

Jeśli ktoś musi podać dane jako "obiekt pliku", na przykład, jeśli otrzymasz obraz podobny do 'some_image = requests.get (url_to_some_image) 'i chcesz opublikować ten obraz w pewnym miejscu, musisz zrobić obraz jako' obiekt pliku'. W tym celu, na podstawie odpowiedzi Keva, musisz wykonać 'files = {'media': io.BytesIO (some_image.content)}' – TitanFighter

Powiązane problemy