2015-03-17 16 views
7

Tôi đang làm việc với các API WeChat ... đây tôi đã tải lên một hình ảnh để của WeChat máy chủ sử dụng API này http://admin.wechat.com/wiki/index.php?title=Transferring_Multimedia_FilesTải lên hình ảnh sử dụng dữ liệu hình thức POST trong Python-yêu cầu

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) 

Tôi không có khả năng gửi dữ liệu

Trả lời

17

Từ WeChat api doc:

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

Dịch lệnh trên để python:

012.
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

Tôi gặp vấn đề với phần còn lại, khi tôi gửi yêu cầu, phản hồi là "message": "Không có hình ảnh nào được cung cấp trong yêu cầu dữ liệu biểu mẫu", yêu cầu của tôi là tiếp theo: curl - X POST - tiêu đề "Content-Type: multipart/form-data" --head er "Chấp nhận: application/json" --header "api_key: zzzz" --header "Content-Type: image/jpg" - header "Content-Disposition: form-data" -F media = 2016-09-14-154558.jpg "xxxx" –

+0

Nếu ai đó cần cung cấp dữ liệu dưới dạng 'đối tượng tệp', ví dụ: nếu bạn nhận được một số hình ảnh như' some_image = requests.get (url_to_some_image) 'và muốn đăng hình ảnh này đến một nơi nào đó, bạn cần tạo một hình ảnh làm' đối tượng tập tin'. Để làm điều đó, dựa trên câu trả lời của Kev, bạn cần phải tạo ra 'files = {'media': io.BytesIO (some_image.content)}' – TitanFighter

Các vấn đề liên quan