def _post_api_tornado(path, payload_str, access_token=None): headers = {'Content-Type': 'application/json'} if access_token is not None: headers['X-Rollbar-Access-Token'] = access_token else: access_token = SETTINGS['access_token'] url = urljoin(SETTINGS['endpoint'], path) def post_tornado_cb(resp): r = requests.Response() r._content = resp.body r.status_code = resp.code r.headers.update(resp.headers) try: _parse_response(path, access_token, payload_str, r) except Exception as e: log.exception('Exception while posting item %r', e) TornadoAsyncHTTPClient().fetch(url, callback=post_tornado_cb, raise_error=False, body=payload_str, method='POST', connect_timeout=SETTINGS.get('timeout', DEFAULT_TIMEOUT), request_timeout=SETTINGS.get('timeout', DEFAULT_TIMEOUT))
async def _post_api_httpx(path, payload_str, access_token=None): headers = {'Content-Type': 'application/json'} if access_token is not None: headers['X-Rollbar-Access-Token'] = access_token else: headers['X-Rollbar-Access-Token'] = rollbar.SETTINGS.get('access_token') proxy_cfg = { 'proxy': rollbar.SETTINGS.get('http_proxy'), 'proxy_user': rollbar.SETTINGS.get('http_proxy_user'), 'proxy_password': rollbar.SETTINGS.get('http_proxy_password'), } proxies = transport._get_proxy_cfg(proxy_cfg) url = urljoin(rollbar.SETTINGS['endpoint'], path) async with httpx.AsyncClient( proxies=proxies, verify=rollbar.SETTINGS.get('verify_https', True) ) as client: resp = await client.post( url, data=payload_str, headers=headers, timeout=rollbar.SETTINGS.get('timeout', DEFAULT_TIMEOUT), ) try: return rollbar._parse_response(path, access_token, payload_str, resp) except Exception as e: log.exception('Exception while posting item %r', e)
def _post_api_twisted(path, payload_str, access_token=None): def post_data_cb(data, resp): resp._content = data _parse_response(path, SETTINGS['access_token'], payload_str, resp) def post_cb(resp): r = requests.Response() r.status_code = resp.code r.headers.update(resp.headers.getAllRawHeaders()) return treq.content(resp).addCallback(post_data_cb, r) headers = {'Content-Type': ['application/json; charset=utf-8']} if access_token is not None: headers['X-Rollbar-Access-Token'] = [access_token] url = urljoin(SETTINGS['endpoint'], path) try: encoded_payload = payload_str.encode('utf8') except (UnicodeDecodeError, UnicodeEncodeError): encoded_payload = payload_str d = treq.post(url, encoded_payload, headers=headers, timeout=SETTINGS.get('timeout', DEFAULT_TIMEOUT)) d.addCallback(post_cb)
def _get_api(path, access_token=None, endpoint=None, **params): access_token = access_token or SETTINGS['access_token'] url = urljoin(endpoint or SETTINGS['endpoint'], path) params['access_token'] = access_token resp = transport.get(url, params=params, verify=SETTINGS.get('verify_https', True)) return _parse_response(path, access_token, params, resp, endpoint=endpoint)
def _get_api(path, access_token=None, endpoint=None, **params): access_token = access_token or SETTINGS['access_token'] url = urljoin(endpoint or SETTINGS['endpoint'], path) params['access_token'] = access_token resp = transport.get(url, params=params, verify=SETTINGS.get('verify_https', True), proxy=SETTINGS.get('http_proxy'), proxy_user=SETTINGS.get('http_proxy_user'), proxy_password=SETTINGS.get('http_proxy_password')) return _parse_response(path, access_token, params, resp, endpoint=endpoint)
def _post_api(path, payload_str, access_token=None): headers = {'Content-Type': 'application/json'} if access_token is not None: headers['X-Rollbar-Access-Token'] = access_token url = urljoin(SETTINGS['endpoint'], path) resp = transport.post(url, data=payload_str, headers=headers, timeout=SETTINGS.get('timeout', DEFAULT_TIMEOUT), verify=SETTINGS.get('verify_https', True)) return _parse_response(path, SETTINGS['access_token'], payload_str, resp)
def _post_api(path, payload, access_token=None): headers = {'Content-Type': 'application/json'} if access_token is not None: headers['X-Rollbar-Access-Token'] = access_token url = urljoin(SETTINGS['endpoint'], path) resp = transport.post(url, data=payload, headers=headers, timeout=SETTINGS.get('timeout', DEFAULT_TIMEOUT), verify=SETTINGS.get('verify_https', True)) return _parse_response(path, SETTINGS['access_token'], payload, resp)
def _post_api(self, path, payload, access_token=None): headers = {'Content-Type': 'application/json'} if access_token is not None: headers['X-Rollbar-Access-Token'] = access_token url = urljoin(self.settings['endpoint'], path) resp = requests.post(url, data=payload, headers=headers, timeout=self.settings.get('timeout', self.default_timeout), verify=self.settings.get('verify_https', True)) return self._parse_response(path, self.settings['access_token'], payload, resp)
def _post_api_appengine(path, payload_str, access_token=None): headers = {'Content-Type': 'application/json'} if access_token is not None: headers['X-Rollbar-Access-Token'] = access_token url = urljoin(SETTINGS['endpoint'], path) resp = AppEngineFetch(url, method="POST", payload=payload_str, headers=headers, allow_truncated=False, deadline=SETTINGS.get('timeout', DEFAULT_TIMEOUT), validate_certificate=SETTINGS.get('verify_https', True)) return _parse_response(path, SETTINGS['access_token'], payload_str, resp)
def _post_api_appengine(path, payload, access_token=None): headers = {'Content-Type': 'application/json'} if access_token is not None: headers['X-Rollbar-Access-Token'] = access_token url = urljoin(SETTINGS['endpoint'], path) resp = AppEngineFetch(url, method="POST", payload=payload, headers=headers, allow_truncated=False, deadline=SETTINGS.get('timeout', DEFAULT_TIMEOUT), validate_certificate=SETTINGS.get('verify_https', True)) return _parse_response(path, SETTINGS['access_token'], payload, resp)
def _post_api_tornado(path, payload, access_token=None): headers = {'Content-Type': 'application/json'} if access_token is not None: headers['X-Rollbar-Access-Token'] = access_token url = urljoin(SETTINGS['endpoint'], path) resp = yield TornadoAsyncHTTPClient().fetch( url, body=payload, method='POST', connect_timeout=SETTINGS.get('timeout', DEFAULT_TIMEOUT), request_timeout=SETTINGS.get('timeout', DEFAULT_TIMEOUT) ) r = requests.Response() r._content = resp.body r.status_code = resp.code r.headers.update(resp.headers) _parse_response(path, SETTINGS['access_token'], payload, r)
def _post_api_twisted(path, payload, access_token=None): def post_data_cb(data, resp): resp._content = data _parse_response(path, SETTINGS['access_token'], payload, resp) def post_cb(resp): r = requests.Response() r.status_code = resp.code r.headers.update(resp.headers.getAllRawHeaders()) return treq.content(resp).addCallback(post_data_cb, r) headers = {'Content-Type': ['application/json']} if access_token is not None: headers['X-Rollbar-Access-Token'] = [access_token] url = urljoin(SETTINGS['endpoint'], path) d = treq.post(url, payload, headers=headers, timeout=SETTINGS.get('timeout', DEFAULT_TIMEOUT)) d.addCallback(post_cb)
def _post_api_twisted(path, payload, access_token=None): headers = {'Content-Type': ['application/json']} if access_token is not None: headers['X-Rollbar-Access-Token'] = [access_token] url = urljoin(SETTINGS['endpoint'], path) agent = TwistedHTTPClient(reactor, connectTimeout=SETTINGS.get( 'timeout', DEFAULT_TIMEOUT)) resp = yield agent.request('POST', url, TwistedHeaders(headers), StringProducer(payload)) r = requests.Response() r.status_code = resp.code r.headers.update(resp.headers.getAllRawHeaders()) bodyDeferred = Deferred() resp.deliverBody(ResponseAccumulator(resp.length, bodyDeferred)) body = yield bodyDeferred r._content = body _parse_response(path, SETTINGS['access_token'], payload, r) yield returnValue(None)
def _post_api_twisted(path, payload, access_token=None): headers = {'Content-Type': ['application/json']} if access_token is not None: headers['X-Rollbar-Access-Token'] = [access_token] url = urljoin(SETTINGS['endpoint'], path) agent = TwistedHTTPClient(reactor, connectTimeout=SETTINGS.get('timeout', DEFAULT_TIMEOUT)) resp = yield agent.request( 'POST', url, TwistedHeaders(headers), StringProducer(payload)) r = requests.Response() r.status_code = resp.code r.headers.update(resp.headers.getAllRawHeaders()) bodyDeferred = Deferred() resp.deliverBody(ResponseAccumulator(resp.length, bodyDeferred)) body = yield bodyDeferred r._content = body _parse_response(path, SETTINGS['access_token'], payload, r) yield returnValue(None)
def _get_api(path, access_token=None, endpoint=None, **params): access_token = access_token or SETTINGS['access_token'] url = urljoin(endpoint or SETTINGS['endpoint'], path) params['access_token'] = access_token resp = requests.get(url, params=params, verify=SETTINGS.get('verify_https', True)) return _parse_response(path, access_token, params, resp, endpoint=endpoint)