这个有点难找,我的需求是这样的,在bae上我需要模拟一个浏览器的动作把bae上的文件传到另一个服务器上
网上都是安装其他模块,或者curl实现
但是bae是无法安装其他模块的,curl和socket也被禁用了,
这里我用urllib2实现了
'''
Created on Sep 7, 2013
@author: blacklaw
'''
import urllib
import urllib2
import mimetools
def request_add_file(request, filename, data):
boundry = mimetools.choose_boundary()
body = '''
--%s
Content-Disposition: file; name="file"; filename="%s"
Content-Type: text/plain
%s
--%s--
''' % (boundry, filename, data, boundry)
request.add_header('Content-type', 'multipart/form-data; boundary=%s' % boundry)
request.add_header('Content-length', len(body))
request.add_data(body)
return request
if __name__ == '__main__':
url = 'http://xxx.xxx'
request = urllib2.Request(url)
f = open('file.txt', 'rb')
filedata = f.read()
f.close()
request_add_file(request, 'file.txt', filedata)
res = urllib2.urlopen(request).read()
print res