如何使用urllib在Python3.2中使用HTTP"Keep-Alive"

hai*_*ner 5 urllib python-3.2

我尝试使用以下代码在Python 3.2.3中保持与urllib.request的HTTP连接:

handler = urllib.request.HTTPHandler()
opener = urllib.request.build_opener(handler)
opener.addheaders = [("connection", "keep-alive"), ("Cookie", cookie_value)]
r = opener.open(url)
Run Code Online (Sandbox Code Playgroud)

但是,如果我听到与Wireshark的连接,我会得到一个带有"Connection:closed"的Header但是设置了Cookie.

Host: url
Cookie: cookie-value
Connection: close
Run Code Online (Sandbox Code Playgroud)

如何将Headerinfo设置为Connection:keep-alive?

Fre*_*ght 1

我通过使用保持连接处于活动状态http-client

import http.client
conn = http.client.HTTPConnection(host, port)
conn.request(method, url, body, headers)
Run Code Online (Sandbox Code Playgroud)

标题只给出 dict ,正文仍然可以使用urllib.parse.urlencode。所以,你可以通过http客户端制作Cookie头。

参考:
官方参考