diff options
| -rw-r--r-- | Lib/test/test_urllib2net.py | 12 | ||||
| -rw-r--r-- | Lib/urllib/request.py | 6 | 
2 files changed, 16 insertions, 2 deletions
diff --git a/Lib/test/test_urllib2net.py b/Lib/test/test_urllib2net.py index eab9306ab9..ccfbdb2bee 100644 --- a/Lib/test/test_urllib2net.py +++ b/Lib/test/test_urllib2net.py @@ -159,6 +159,18 @@ class OtherNetworkTests(unittest.TestCase):          self.assertEqual(res.geturl(),                  "http://docs.python.org/glossary.html") +    def test_custom_headers(self): +        url = "http://www.example.com" +        opener = urllib.request.build_opener() +        request = urllib.request.Request(url) +        self.assertFalse(request.header_items()) +        opener.open(request) +        self.assertTrue(request.header_items()) +        self.assertTrue(request.has_header('User-agent')) +        request.add_header('User-Agent','Test-Agent') +        opener.open(request) +        self.assertEqual(request.get_header('User-agent'),'Test-Agent') +      def _test_urls(self, urls, handlers, retry=True):          import socket          import time diff --git a/Lib/urllib/request.py b/Lib/urllib/request.py index c638cfa510..464f84709b 100644 --- a/Lib/urllib/request.py +++ b/Lib/urllib/request.py @@ -1063,8 +1063,10 @@ class AbstractHTTPHandler(BaseHandler):              raise URLError('no host given')          h = http_class(host, timeout=req.timeout) # will parse host:port -        headers = dict(req.headers) -        headers.update(req.unredirected_hdrs) + +        headers = dict(req.unredirected_hdrs) +        headers.update(dict((k, v) for k, v in req.headers.items() +                            if k not in headers))          # TODO(jhylton): Should this be redesigned to handle          # persistent connections?  | 
