import requests;
import time
import urllib2;
import sys
import binascii
reload(sys)
sys.setdefaultencoding('utf-8')
class postfile(object):
def __init__(self):
pass
def postfile(self,token,url,filepath,OwnFileName):
headerstoken = {'X-Auth-Token': token}
# files = {'file': ('1.png', open('E:\\1.png', 'rb'), 'multipart/form-data', {'': ''})}
# r = requests.post(url, files=files,headers=headers)
# return r.text
boundary = '----------%s' % hex(int(time.time() * 1000))
data = []
data.append('--%s' % boundary)
data.append('Content-Disposition: form-data; name="%s"\r\n' % 'parameter1filename')
data.append(OwnFileName)
data.append('--%s' % boundary)
data.append('Content-Disposition: form-data; name="%s"\r\n' % 'parameter2')
data.append('200')
data.append('--%s' % boundary)
data.append('Content-Disposition: form-data; name="%s"\r\n' % 'parameter3')
data.append('200')
data.append('--%s' % boundary)
#mode='r', encoding='UTF-8'
fr=open(r'E:\\MyProject\\BI\\a.jpg','rb')
data.append('Content-Disposition: form-data; name="%s"; filename="a.jpg"' % 'file')
data.append('Content-Type: %s\r\n' % 'image/jpg')
data.append(fr.read())
fr.close()
data.append('--%s--\r\n' % boundary)
http_body='\r\n'.join(data)
try:
#buld http request
req=urllib2.Request(url, headers=headerstoken,data=http_body)
#header
req.add_header('Content-Type', 'multipart/form-data; boundary=%s' % boundary)
req.add_header('User-Agent','Mozilla/5.0')
resp = urllib2.urlopen(req, timeout=5)
#get response
qrcont=resp.read()
print qrcont
except Exception,e:
print 'http error'
-----------------以上代码是网上找的,确定可以运行,保存一下----------
http://www.cnblogs.com/51kata/p/5126227.html ----引用的过程可参考
目前还有一个问题,直接运行python调用接口可以成功;结果通过robot framework调用总是报编码错误。(以后解决)