diff --git a/pex/http.py b/pex/http.py index d1bc06900..78d7182d1 100644 --- a/pex/http.py +++ b/pex/http.py @@ -57,6 +57,7 @@ class Context(AbstractClass): """ DEFAULT_ENCODING = 'iso-8859-1' + USER_AGENT = 'pex/%s' % PEX_VERSION class Error(Exception): """Error base class for Contexts to wrap application-specific exceptions.""" @@ -135,7 +136,8 @@ class UrllibContext(Context): """Default Python standard library Context.""" def open(self, link): - return urllib_request.urlopen(link.url) + request = urllib_request.Request(link.url, headers={'User-Agent': self.USER_AGENT}) + return urllib_request.urlopen(request) def content(self, link): if link.local: @@ -146,7 +148,7 @@ def content(self, link): return fp.read().decode(encoding, 'replace') def resolve(self, link): - request = urllib_request.Request(link.url) + request = urllib_request.Request(link.url, headers={'User-Agent': self.USER_AGENT}) request.get_method = lambda: 'HEAD' with contextlib.closing(urllib_request.urlopen(request)) as response: return link.wrap(response.url) @@ -209,7 +211,6 @@ def close(self): class RequestsContext(Context): """A requests-based Context.""" - USER_AGENT = 'pex/%s' % PEX_VERSION @staticmethod def _create_session(max_retries):