def request(self, method, url, params=None, data=None, headers=None, auth=None, timeout=None, allow_redirects=False): """Sends an HTTP request :param str method: The HTTP method to use :param str url: The URL to request :param dict params: Query parameters to append to the URL :param dict data: Parameters to go in the body of the HTTP request :param dict headers: HTTP Headers to send with the request :param tuple auth: Basic Auth arguments :param float timeout: Socket/Read timeout for the request :param boolean allow_redirects: Whether or not to allow redirects :return: An http response :rtype: A :class:`Response <twilio.rest.http.response.Response>` object See the requests documentation for explanation of all these parameters """ http = httplib2.Http( timeout=timeout, ca_certs=get_cert_file(), proxy_info=self.proxy_info, ) http.follow_redirects = allow_redirects if auth is not None: http.add_credentials(auth[0], auth[1]) if data is not None: udata = {} for k, v in iteritems(data): key = k.encode('utf-8') if isinstance(v, (list, tuple, set)): udata[key] = [self.encode_atom(x) for x in v] elif isinstance(v, (integer_types, binary_type, string_types)): udata[key] = self.encode_atom(v) else: raise ValueError('data should be an integer, ' 'binary, or string, or sequence ') data = urlencode(udata, doseq=True) if params is not None: enc_params = urlencode(params, doseq=True) if urlparse(url).query: url = '%s&%s' % (url, enc_params) else: url = '%s?%s' % (url, enc_params) resp, content = http.request(url, method, headers=headers, body=data) return Response(int(resp.status), content.decode('utf-8'))
def request(self, method, url, params=None, data=None, headers=None, auth=None, timeout=None, allow_redirects=False): """ Make a signed HTTP Request :param str method: The HTTP method to use :param str url: The URL to request :param dict params: Query parameters to append to the URL :param dict data: Parameters to go in the body of the HTTP request :param dict headers: HTTP Headers to send with the request :param tuple auth: Basic Auth arguments :param float timeout: Socket/Read timeout for the request :param boolean allow_redirects: Whether or not to allow redirects See the requests documentation for explanation of all these parameters :return: An http response :rtype: A :class:`Response <twilio.rest.http.response.Response>` object """ session = Session() session.verify = get_cert_file() request = Request(method.upper(), url, params=params, data=data, headers=headers, auth=auth) prepared_request = session.prepare_request(request) if 'Host' not in prepared_request.headers and 'host' not in prepared_request.headers: prepared_request.headers['Host'] = self._get_host(prepared_request) validation_payload = self._build_validation_payload(prepared_request) jwt = ClientValidationJwt(self.account_sid, self.api_key_sid, self.credential_sid, self.private_key, validation_payload) prepared_request.headers['Twilio-Client-Validation'] = jwt.to_jwt() response = session.send( prepared_request, allow_redirects=allow_redirects, timeout=timeout, ) return Response(int(response.status_code), response.content.decode('utf-8'))
def request(self, method, url, params=None, data=None, headers=None, auth=None, timeout=None, allow_redirects=False): """ Make an HTTP Request with parameters provided. :param str method: The HTTP method to use :param str url: The URL to request :param dict params: Query parameters to append to the URL :param dict data: Parameters to go in the body of the HTTP request :param dict headers: HTTP Headers to send with the request :param tuple auth: Basic Auth arguments :param float timeout: Socket/Read timeout for the request :param boolean allow_redirects: Whether or not to allow redirects See the requests documentation for explanation of all these parameters :return: An http response :rtype: A :class:`Response <twilio.rest.http.response.Response>` object """ session = self.session if session is None: session = Session() session.verify = get_cert_file() request = Request(method.upper(), url, params=params, data=data, headers=headers, auth=auth) prepped_request = session.prepare_request(request) response = session.send( prepped_request, allow_redirects=allow_redirects, timeout=timeout, ) return Response(int(response.status_code), response.text)
def request(self, method, url, params=None, data=None, headers=None, auth=None, timeout=None, allow_redirects=False): session = Session() session.verify = get_cert_file() session.proxies = { "https" : "http://10.94.134.70:8080" } request = Request(method.upper(), url, params=params, data=data, headers=headers, auth=auth) prepped_request = session.prepare_request(request) response = session.send( prepped_request, allow_redirects=allow_redirects, timeout=timeout, ) return Response(int(response.status_code), response.content.decode('utf-8'))
def __init__(self, connection_pool=True): if connection_pool: self.session = Session() self.session.verify = get_cert_file() else: self.session = None