def send(self, data, headers): """ Sends a request to a remote webserver using HTTP POST. """ req = urllib2.Request(self._url, headers=headers) try: response = urlopen( url=req, data=data, timeout=self.timeout, verify_ssl=self.verify_ssl, ca_certs=self.ca_certs, ) except urllib2.HTTPError as exc: msg = exc.headers.get('x-sentry-error') code = exc.getcode() if code == 429: try: retry_after = int(exc.headers.get('retry-after')) except (ValueError, TypeError): retry_after = 0 raise RateLimited(msg, retry_after) elif msg: raise APIError(msg, code) else: raise return response
def send(self, url, data, headers): """ Sends a request to a remote webserver using HTTP POST. """ req = urllib2.Request(url, headers=headers) try: response = urlopen( url=req, data=data, timeout=self.timeout, verify_ssl=self.verify_ssl, ca_certs=self.ca_certs, ) except urllib2.HTTPError as exc: msg = exc.headers.get('x-sentry-error') code = exc.getcode() if code == 429: try: retry_after = int(exc.headers.get('retry-after')) except (ValueError, TypeError): retry_after = 0 raise RateLimited(msg, retry_after) elif msg: raise APIError(msg, code) else: raise return response
def send(self, data, headers): """ Sends a request to a remote webserver using HTTP POST. """ req = urllib2.Request(self._url, headers=headers) response = urlopen( url=req, data=data, timeout=self.timeout, verify_ssl=self.verify_ssl, ca_certs=self.ca_certs ).read() return response
def async_send(self, data, headers, success_cb, failure_cb): """ Spawn an async request to a remote webserver. """ if not self._oneway: self._lock.acquire() return gevent.spawn( super(GeventedHTTPTransport, self).send, data, headers ).link(lambda x: self._done(x, success_cb, failure_cb)) else: req = urllib2.Request(self._url, headers=headers) return urlopen(url=req, data=data, timeout=self.timeout, verify_ssl=self.verify_ssl, ca_certs=self.ca_certs)