Phi*_*tes 2 python cookies file-upload http
使用Chris Atlee的python 海报库有没有办法包含cookie处理?我有python http登录代码,它适用于cookies:
cookiejar = cookielib.CookieJar()
urlOpener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookiejar))
request = urllib2.Request(login_url, params)
result = urlOpener.open(request)
Run Code Online (Sandbox Code Playgroud)
但是当我需要上传文件时,我不知道如何使用海报lib代码和cookie处理代码.海报lib似乎需要调用urllib2.urlopen()而不是一些自定义url开启器,就像上面的代码一样.
例如,我不知道如何使用下面的python文件邮政编码的cookie:
register_openers()
params = {'file': open("test.txt", "rb"), 'name': 'upload test'}
datagen, headers = multipart_encode(params)
request = urllib2.Request(upload_url, datagen, headers)
result = urllib2.urlopen(request)
Run Code Online (Sandbox Code Playgroud)
我发送了一封电子邮件给Chris AtLee,询问我们是否可以获得一个基本的身份验证示例.他回答我的问题非常酷,甚至还发了一些我寄给他的代码.
要包含cookie处理,您可以执行以下操作:
opener = poster.streaminghttp.register_openers()
opener.add_handler(urllib2.HTTPCookieProcessor(cookielib.CookieJar())) # Add cookie handler
params = {'file': open("test.txt", "rb"), 'name': 'upload test'}
datagen, headers = poster.encode.multipart_encode(params)
request = urllib2.Request(upload_url, datagen, headers)
result = urllib2.urlopen(request)
Run Code Online (Sandbox Code Playgroud)
要为请求添加基本身份验证,您只需执行此操作(我添加了base64编码行以获得完整性):
opener = poster.streaminghttp.register_openers()
params = {'file': open("test.txt", "rb"), 'name': 'upload test'}
datagen, headers = poster.encode.multipart_encode(params)
request = urllib2.Request(upload_url, datagen, headers)
auth = base64.encodestring('%s:%s' % ('username', 'password'))[:-1] # This is just standard un/pw encoding
request.add_header('Authorization', 'Basic %s' % auth ) # Add Auth header to request
result = urllib2.urlopen(request)
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助.另一位非常感谢Chris AtLee.
| 归档时间: |
|
| 查看次数: |
7523 次 |
| 最近记录: |