Python 如何使用cookielib从HTTPResponse中提取cookie?

Python 如何使用cookielib从HTTPResponse中提取cookie?,python,python-2.7,httpresponse,Python,Python 2.7,Httpresponse,我正在尝试使用cookielib.CookieJar.extract_cookies()从HTTPResponse中提取cookies,但我一直收到一个错误,说响应对象没有.info属性。我知道它更适合于伪文件对象,比如urllib2.urlopen返回的对象,但是从HTTPResponse中提取cookie的标准方法是什么?以下是我得到的: def _make_request(self, loc, headers, data=None, retry=True): retries = 0

我正在尝试使用
cookielib.CookieJar.extract_cookies()
HTTPResponse
中提取cookies,但我一直收到一个错误,说响应对象没有
.info
属性。我知道它更适合于伪文件对象,比如
urllib2.urlopen
返回的对象,但是从
HTTPResponse
中提取cookie的标准方法是什么?以下是我得到的:

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
...
def\u发出请求(self、loc、headers、data=None、retry=True):
重试次数=0
max\u retries=self.\u重试\u max如果重试,则重试1
self.\u request=urllib2.request('http://example.com/')
self.\u connection=httplib.HTTPSConnection(主机)
尝试:
重试次数<最大重试次数:
尝试:
自我请求。添加数据(数据)
self.\u connection.request(self.\u request.get\u方法(),self.\u request.get\u选择器()+loc,
self.\u请求.get\u数据(),标题)
resp=self.\u connection.getresponse()
self._cookies.提取_cookies(resp,self._request)#问题!
如果len(self.\u cookies)>0:
#做点什么
...

谢谢

尝试使用键
设置cookie
获取cookie。这是给你们的例子

#!/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)

模拟响应对象,如我的答案有帮助,请不要忘记接受它。谢谢