2015-03-17 3 views
7

Я работаю с WeChat API, ... здесь я, чтобы загрузить изображение, чтобы WeChat сервер с помощью этого API http://admin.wechat.com/wiki/index.php?title=Transferring_Multimedia_FilesЗагрузить изображение с помощью данных формы POST в Python-запросов

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) 

Я не в состоянии размещать данные

ответ

17

с WeChat апи документ:

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

Перевести команду выше питона:

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

У меня проблема с компиляцией api-rest, когда я пытаюсь отправить запрос, ответ «сообщение»: «Нет изображения, предоставленного в запросе данных формы», мой запрос следующий: curl - X POST -header «Content-Type: multipart/form-data» - head er «Accept: application/json» - header «api_key: zzzz» - header «Content-Type: image/jpg» - заголовок «Content-Disposition: form-data» -F media = 2016-09-14-154558.jpg «xxxx» –

+0

Если кому-то нужно предоставить данные как «файл-объект», например, если вы получите какое-то изображение типа 'some_image = request.get (url_to_some_image) 'и хотите разместить это изображение в каком-либо месте, вам нужно сделать изображение« файловым объектом ». Для этого, основываясь на ответе Кева, вам нужно сделать 'files = {'media': io.BytesIO (some_image.content)}' – TitanFighter

Смежные вопросы