2015-10-14 51 views
0

我想發送文件到一些像「chat_id」,「標題」和文件必須被髮送爲'照片'字段名稱後的參數。
但我發現只有方法發送只有POST參數沒有文件或只發送文件沒有POST PARAMS和自定義文件名參數。
此代碼只發送params字段,但我還需要files字段。上傳文件params

from urllib import parse, request 
... 
files={'photo': open('file.jpg','rb')}   
params = parse.urlencode({'chat_id': chat_id, 'caption': 'test'}) 
#headers = {"Content-type": "multipart/form-data"}  

req = request.Request(url, params.encode('ascii')) 
response = request.urlopen(req) 
print(response.read()) 

的Python 3.4.2

回答

1

確定。我找到解決方案。
我安裝了外部庫文件Requests: HTTP for Humans
現在我正在使用requests

import requests 
... 
url = 'https://api.telegram.org/bot'+self.token+'/sendPhoto' #'/sendmessage' 
print('request to '+url+' with params '+chat_id+' ' + text)  

headers = {'Content-Type': 'multipart/form-data'} 

files = {'photo': open('file.jpg', 'rb')} 
params = {'chat_id': chat_id, 'caption': text} 
r = requests.post(url, files=files, params=params)  
print(r.text)