2015-03-17 4 views
7

ich mit WeChat APIs gerade arbeite ... Hier habe ich ein Bild hochladen Server WeChat der Verwendung dieser API http://admin.wechat.com/wiki/index.php?title=Transferring_Multimedia_Fileshochladen Bild mit POST Formulardaten in Python-Anfragen

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) 

Ich bin nicht in der Lage

Antwort

17

Von WeChat api doc Daten zu schreiben:

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

den Befehl oben auf python Übersetzen:

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

Ich habe Problem mit der comsume einer API-Rest, wenn ich versuche, eine Anfrage zu senden, ist die Antwort "Nachricht": "Kein Bild in Form-Daten-Anfrage", meine Anfrage ist die nächste: curl - X POST --header "Inhaltstyp: multipart/form-data" --head er "Akzeptieren: application/json" --header "api_key: zzzz" --header "Inhaltstyp: image/jpg" - header "Content-Disposition: Formulardaten" -F media = 2016-09-14-154558.jpg "xxxx" –

+0

Wenn jemand Daten als 'Dateiobjekt' zur Verfügung stellen muss, zum Beispiel wenn man ein Bild wie' some_image 'bekommt = requests.get (url_to_some_image) 'und möchten dieses Bild an eine Stelle stellen, müssen Sie ein Bild als' Dateiobjekt' erstellen. Um dies zu tun, müssen Sie, basierend auf der Antwort von Kev, 'files = {'media': io.BytesIO (some_image.content)}' machen – TitanFighter