我正在尝试POST
到设置JSESSIONID
HTTP cookie的网页。尝试使用HTTPCookieProcessor
自动设置此cookie时,页面给出空白响应,当我打印出请求标头时,缺少Cookie
。
代码:
@contextmanager
def get_opener():
global proxies
proxy = proxies.get()
try:
yield request.build_opener(
request.HTTPCookieProcessor(),
request.ProxyHandler(proxy)
)
finally:
proxies.put(proxy)
def download(data, destination, tries=0):
with get_opener() as opener:
first_response = opener.open(request.Request('https://example.org/page.html'))
print('First response info:')
print(first_response.info())
req = request.Request(Config.DOWNLOAD_URL, data=data, method='POST')
response = opener.open(req)
print('Second response:')
print(response.info())
print(response.read())
print(req.headers)
输出:
First response info:
Set-Cookie: JSESSIONID=04CBF51EE096C4AD382D7D556CDF356D; Path=/; Secure; HttpOnly
Content-Type: text/html;charset=ISO-8859-1
Content-Language: en-US
Transfer-Encoding: chunked
Vary: Accept-Encoding
Date: Wed, 24 Jul 2019 05:37:05 GMT
Connection: close
Second response:
Content-Length: 0
Date: Wed, 24 Jul 2019 05:37:06 GMT
Connection: close
b''
{} # note no 'Cookie' header
给我的印象是将自动设置cookie: