in alibabacloud_oss_v2/transport/requests_client.py [0:0]
def send(self, request: HttpRequest, **kwargs) -> HttpResponse:
self.open()
error: Optional[Exception] = None
resp: _RequestsHttpResponseImpl = None
try:
# api's configuration
connect_timeout = kwargs.pop("connect_timeout", self._connect_timeout)
read_timeout = kwargs.pop("readwrite_timeout", self._read_timeout)
stream = kwargs.pop("stream", False)
# tell requests not to add 'Accept-Encoding: gzip, deflate' by default
if 'accept-encoding' not in request.headers:
request.headers.update({'Accept-Encoding': None})
response = self.session.request(
request.method,
request.url,
headers=request.headers,
data=request.body,
verify=self._verify,
timeout=(connect_timeout, read_timeout),
allow_redirects=self._allow_redirects,
proxies=self._proxies,
stream=stream,
**kwargs
)
resp = _RequestsHttpResponseImpl(
request=request,
internal_response=response,
block_size=self._block_size
)
if not stream:
_ = resp.read()
resp.close()
except (NewConnectionError, ConnectTimeoutError) as err:
error = exceptions.RequestError(error=err)
except requests.exceptions.ConnectionError as err:
error = exceptions.RequestError(error=err)
except requests.exceptions.ReadTimeout as err:
error = exceptions.ResponseError(error=err)
except requests.RequestException as err:
error = exceptions.RequestError(error=err)
if error:
raise error
return resp