Python HTTPSConnection.close() does not appear to close the connection?
Posted
by Dave
on Stack Overflow
See other posts from Stack Overflow
or by Dave
Published on 2010-04-02T17:01:43Z
Indexed on
2010/04/02
17:03 UTC
Read the original article
Hit count: 193
I'm not sure if this is a bug or if I'm just doing something wrong. If I were to do an HTTP connection like this:
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()
Then at a DOS prompt, I do this:
netstat -ano | find /i "192.168.192.196:80" | find /i "ESTABLISHED"
I get nothing.
However, if I do the same thing, but change it to an 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()
Then do this:
netstat -ano | find /i "192.168.192.196:443" | find /i "ESTABLISHED"
I will actually see that the connection remains established until I actually ^Z out of the Python shell.
This is happening in one of the applications I'm responsible for. Python isn't actually hanging there - it's simply leaving the connection open.
Am I doing something wrong here? Do I need extra code to close the HTTPS connection?
This is Python 2.6.4, btw.
© Stack Overflow or respective owner