我不确定这是一个错误还是我做错了什么。如果我要做这样的HTTP连接:
import httplib
http_connection = httplib.HTTPConnection("192.168.192.196")
http_connection.request("GET", "/")
http_connection.sock.settimeout(20)
response = http_connection.getresponse()
data = response.read()
http_connection.close()
然后在DOS提示符下,我这样做:
netstat -ano | find /i "192.168.192.196:80" | find /i "ESTABLISHED"
我一无所获。
但是,如果我做同样的事情,但将其更改为HTTPSConnection:
import httplib
http_connection = httplib.HTTPSConnection("192.168.192.196")
http_connection.request("GET", "/")
http_connection.sock.settimeout(20)
response = http_connection.getresponse()
data = response.read()
http_connection.close()
然后这样做:
netstat -ano | find /i "192.168.192.196:443" | find /i "ESTABLISHED"
我实际上会看到连接仍然存在,直到我实际上^ Z出了Python shell。
这是我负责的其中一个应用程序中发生的。 Python实际上并没有挂在那里 - 它只是让连接处于打开状态。
我在这里做错了吗?我是否需要额外的代码来关闭HTTPS连接?
这是Python 2.6.4,顺便说一句。
答案 0 :(得分:0)
事实证明,如果您发送“Connection:close”HTTP标头,这不是问题 - 尽管我仍然认为.close()实际上应该关闭连接,就像它对HTTPConnection一样。