async def _send(self, method: Method, endpoint: str, content: Union[bytes, str], query_params: Dict[str, str], headers: Dict[str, str]) -> 'JSON': while True: request = self.session.request(str(method), endpoint, data=content, params=query_params, headers=headers) async with request as response: if response.status < 200 or response.status >= 300: errcode = message = None try: response_data = await response.json() errcode = response_data["errcode"] message = response_data["error"] except (JSONDecodeError, ContentTypeError, KeyError): pass raise make_request_error(http_status=response.status, text=await response.text(), errcode=errcode, message=message) if response.status == 429: resp = await response.json() await asyncio.sleep(resp["retry_after_ms"] / 1000, loop=self.loop) else: return await response.json()
async def _send( self, method: Method, url: URL, content: bytes | bytearray | str | AsyncBody, query_params: dict[str, str], headers: dict[str, str], ) -> JSON: request = self.session.request( str(method), url, data=content, params=query_params, headers=headers ) async with request as response: if response.status < 200 or response.status >= 300: errcode = message = None try: response_data = await response.json() errcode = response_data["errcode"] message = response_data["error"] except (JSONDecodeError, ContentTypeError, KeyError): pass raise make_request_error( http_status=response.status, text=await response.text(), errcode=errcode, message=message, ) return await response.json()