Esempio n. 1
0
 def __init__(self,
              url,
              data=None,
              method=None,
              headers={},
              origin_req_host=None,
              unverifiable=False,
              rawurl=False):
     '''
     :param url: request url
     :param data: request data, can be a str/bytes, or a stream(vlcp.event.stream.XXXStream)
     :param method: request method (GET, POST, ...)
     :param headers: request header dict ({'user-agent':'myagent'})
     :param origin_req_host: origin request host for cookie policy check
     :param unverifiable: unverifiable for cookie policy check
     '''
     self.url = _str(url, 'ascii')
     s = urlsplit(self.url, 'http')
     self.type = 'https' if s.scheme == 'https' else 'http'
     self.host = s.netloc
     if not self.host:
         raise ValueError('Invalid URL: ' + self.url)
     if rawurl:
         self.path = urlunsplit(('', '', s.path, s.query, ''))
     else:
         self.path = urlunsplit(
             ('', '', quote(s.path), quote(s.query, '/&='), ''))
     if not self.path:
         self.path = '/'
     self.data = data
     if method is None:
         if self.data is None:
             self.method = 'GET'
         else:
             self.method = 'POST'
     else:
         self.method = method.upper()
     if self.data is not None:
         if isinstance(self.data, unicode):
             self.data = _bytes(self.data)
     headers = dict(headers)
     self.headers = dict(
         (_str(k), _str(v, 'iso-8859-1')) for k, v in headers.items())
     self.headerdict = dict((k.lower(), v) for k, v in self.headers.items())
     self.headermap = dict((k.lower(), k) for k in self.headers.keys())
     self.undirectedheaders = {}
     self.undirectedheaderdict = {}
     self.undirectedheadermap = {}
     self.hostname = request_host(self)
     if origin_req_host is None:
         origin_req_host = request_host(self)
     self.origin_req_host = origin_req_host
     self.unverifiable = unverifiable
     self.redirect_count = 0
     if self.data and not self.has_header('Content-Type'):
         self.add_header('Content-Type',
                         'application/x-www-form-urlencoded')
Esempio n. 2
0
 def __init__(self, url, data = None, method = None, headers = {}, origin_req_host = None, unverifiable = False,
              rawurl = False):
     '''
     :param url: request url
     :param data: request data, can be a str/bytes, or a stream(vlcp.event.stream.XXXStream)
     :param method: request method (GET, POST, ...)
     :param headers: request header dict ({'user-agent':'myagent'})
     :param origin_req_host: origin request host for cookie policy check
     :param unverifiable: unverifiable for cookie policy check
     '''
     self.url = _str(url, 'ascii')
     s = urlsplit(self.url, 'http')
     self.type = 'https' if s.scheme == 'https' else 'http'
     self.host = s.netloc
     if not self.host:
         raise ValueError('Invalid URL: ' + self.url)
     if rawurl:
         self.path = urlunsplit(('', '', s.path, s.query, ''))
     else:
         self.path = urlunsplit(('', '', quote(s.path), quote(s.query,'/&='), ''))
     if not self.path:
         self.path = '/'
     self.data = data
     if method is None:
         if self.data is None:
             self.method = 'GET'
         else:
             self.method = 'POST'
     else:
         self.method = method.upper()
     if self.data is not None:
         if isinstance(self.data, unicode):
             self.data = _bytes(self.data)
     headers = dict(headers)
     self.headers = dict((_str(k), _str(v, 'iso-8859-1')) for k,v in headers.items())
     self.headerdict = dict((k.lower(), v) for k,v in self.headers.items())
     self.headermap = dict((k.lower(), k) for k in self.headers.keys())
     self.undirectedheaders = {}
     self.undirectedheaderdict = {}
     self.undirectedheadermap = {}
     self.hostname = request_host(self)
     if origin_req_host is None:
         origin_req_host = request_host(self)
     self.origin_req_host = origin_req_host
     self.unverifiable = unverifiable
     self.redirect_count = 0
     if self.data and not self.has_header('Content-Type'):
         self.add_header('Content-Type', 'application/x-www-form-urlencoded')
Esempio n. 3
0
 def __init__(self, url, headers=None):
     self.url = url
     self.headers = headers
     self.origin_req_host = cookielib.request_host(self)
     self.type, r = urllib.splittype(url)
     self.host, r = urllib.splithost(r)
     if self.host:
         self.host = urllib.unquote(self.host)
Esempio n. 4
0
 def __init__(self, url, headers=None):
     self.url = url
     self.headers = headers
     self.origin_req_host = cookielib.request_host(self)
     self.type, r = splittype(url)
     self.host, r = splithost(r)
     if self.host:
         self.host = unquote(self.host)
Esempio n. 5
0
 def test_request_host(self):
     from cookielib import request_host
     # this request is illegal (RFC2616, 14.2.3)
     req = self.FakeRequest("http://1.1.1.1/", headers={"Host": "www.acme.com:80"})
     # libwww-perl wants this response, but that seems wrong (RFC 2616,
     # section 5.2, point 1., and RFC 2965 section 1, paragraph 3)
     #self.assertEquals(request_host(req), "www.acme.com")
     self.assertEquals(request_host(req), "1.1.1.1")
     req = self.FakeRequest("http://www.acme.com/", headers={"Host": "irrelevant.com"})
     self.assertEquals(request_host(req), "www.acme.com")
     # not actually sure this one is valid Request object, so maybe should
     # remove test for no host in url in request_host function?
     req = self.FakeRequest("/resource.html", headers={"Host": "www.acme.com"})
     self.assertEquals(request_host(req), "www.acme.com")
     # port shouldn't be in request-host
     req = self.FakeRequest("http://www.acme.com:2345/resource.html", headers={"Host": "www.acme.com:5432"})
     self.assertEquals(request_host(req), "www.acme.com")
Esempio n. 6
0
 def __init__(self, url, data=None, headers={}, origin_req_host=None, unverifiable=False):
     # unwrap('<URL:type://host/path>') --> 'type://host/path'
     self.__original = unwrap(url)
     self.type = None
     # self.__r_type is what's left after doing the splittype
     self.host = None
     self.port = None
     self.data = data
     self.headers = {}
     for key, value in headers.items():
         self.add_header(key, value)
     self.unredirected_hdrs = {}
     if origin_req_host is None:
         origin_req_host = cookielib.request_host(self)
     self.origin_req_host = origin_req_host
     self.unverifiable = unverifiable
 def __init__(self, url, data=None, headers={},
              origin_req_host=None, unverifiable=False):
     # unwrap('<URL:type://host/path>') --> 'type://host/path'
     self.__original = unwrap(url)
     self.type = None
     # self.__r_type is what's left after doing the splittype
     self.host = None
     self.port = None
     self.data = data
     self.headers = {}
     for key, value in headers.items():
         self.add_header(key, value)
     self.unredirected_hdrs = {}
     if origin_req_host is None:
         origin_req_host = cookielib.request_host(self)
     self.origin_req_host = origin_req_host
     self.unverifiable = unverifiable
Esempio n. 8
0
 def get_origin_req_host(self):
     if self.origin_req_host is None:
         return request_host(self.host)
     else:
         return self.origin_req_host
Esempio n. 9
0
 def get_origin_req_host(self):
     if self.origin_req_host is None:
         return request_host(self.host)
     else:
         return self.origin_req_host