首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用cookielib从HTTPResponse提取cookies?

如何使用cookielib从HTTPResponse提取cookies?
EN

Stack Overflow用户
提问于 2015-02-15 22:00:42
回答 1查看 2.1K关注 0票数 2

我尝试使用cookielib.CookieJar.extract_cookies()HTTPResponse中提取cookie,但一直收到错误消息,指出响应对象没有.info属性。我知道它更多的是为伪文件对象设计的,比如urllib2.urlopen返回的对象,但是从HTTPResponse中提取cookie的规范方法是什么呢?下面是我得到的信息:

代码语言:javascript
复制
def _make_request(self, loc, headers, data=None, retry=True):
    retries = 0
    max_retries = self._retry_max if retry else 1
    self._request = urllib2.Request('http://example.com/')
    self._connection = httplib.HTTPSConnection(host)
    try:
        while retries < max_retries:
            try:
                self._request.add_data(data)
                self._connection.request(self._request.get_method(), self._request.get_selector() + loc,
                                         self._request.get_data(), headers)
                resp = self._connection.getresponse()
                self._cookies.extract_cookies(resp, self._request) # problems!
                if len(self._cookies) > 0:
                    # do something
...

谢谢

EN

回答 1

Stack Overflow用户

发布于 2015-02-15 22:31:27

尝试使用key set-cookie获取cookies。下面是你的例子。

代码语言:javascript
复制
#!/usr/bin/env python

import urllib
import httplib2

http = httplib2.Http()

url = 'http://www.example.com/login'   
body = {'USERNAME': 'foo', 'PASSWORD': 'bar'}
headers = {'Content-type': 'application/x-www-form-urlencoded'}
response, content = http.request(url, 'POST', headers=headers, body=urllib.urlencode(body))

headers = {'Cookie': response['set-cookie']}

url = 'http://www.example.com/home'   
response, content = http.request(url, 'GET', headers=headers)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28526836

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档