Kaydet (Commit) 1299a8f3 authored tarafından Senthil Kumaran's avatar Senthil Kumaran

Fix closes Issue12576 - fix urlopen behavior on sites which do not send (or…

Fix closes Issue12576 - fix urlopen behavior on sites which do not send (or obsfuscates) Connection: Close header.
üst 5cd3e305
......@@ -174,6 +174,22 @@ class OtherNetworkTests(unittest.TestCase):
opener.open(request)
self.assertEqual(request.get_header('User-agent'),'Test-Agent')
def test_sites_no_connection_close(self):
# Some sites do not send Connection: close header.
# Verify that those work properly. (#issue12576)
try:
with urllib.request.urlopen('http://www.imdb.com') as res:
pass
except ValueError as e:
self.fail("urlopen failed for sites not sending Connection:close")
else:
self.assertTrue(res)
req = urllib.request.urlopen('http://www.imdb.com')
res = req.read()
self.assertTrue(res)
def _test_urls(self, urls, handlers, retry=True):
import time
import logging
......
......@@ -1134,11 +1134,14 @@ class AbstractHTTPHandler(BaseHandler):
try:
h.request(req.get_method(), req.selector, req.data, headers)
r = h.getresponse() # an HTTPResponse instance
except socket.error as err:
except socket.error as err: # timeout error
raise URLError(err)
finally:
h.close()
try:
r = h.getresponse() # an HTTPResponse instance
except Exception as exp:
h.close()
raise exp
r.url = req.get_full_url()
# This line replaces the .msg attribute of the HTTPResponse
......
......@@ -37,6 +37,9 @@ Core and Builtins
Library
-------
- Issue #12576: Fix urlopen behavior on sites which do not send (or obfuscates)
Connection:close header.
- Issue #12102: Document that buffered files must be flushed before being used
with mmap. Patch by Steffen Daode Nurpmeso.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment