(self, method, url_or_endpoint, **kwargs)
| 710 | ) |
| 711 | |
| 712 | def _request(self, method, url_or_endpoint, **kwargs): |
| 713 | if not url_or_endpoint.startswith(('http://', 'https://')): |
| 714 | url = '{base}{endpoint}'.format( |
| 715 | base=self.API_BASE_URL, |
| 716 | endpoint=url_or_endpoint |
| 717 | ) |
| 718 | else: |
| 719 | url = url_or_endpoint |
| 720 | |
| 721 | if isinstance(kwargs.get('data', ''), dict): |
| 722 | body = json.dumps(kwargs['data'], ensure_ascii=False) |
| 723 | body = body.encode('utf-8') |
| 724 | kwargs['data'] = body |
| 725 | |
| 726 | res = self._http.request( |
| 727 | method=method, |
| 728 | url=url, |
| 729 | **kwargs |
| 730 | ) |
| 731 | try: |
| 732 | res.raise_for_status() |
| 733 | except requests.RequestException as reqe: |
| 734 | raise WeChatOAuthException( |
| 735 | errcode=None, |
| 736 | errmsg=None, |
| 737 | client=self, |
| 738 | request=reqe.request, |
| 739 | response=reqe.response |
| 740 | ) |
| 741 | |
| 742 | return self._handle_result(res, method=method, url=url, **kwargs) |
| 743 | |
| 744 | def _handle_result(self, res, method=None, url=None, **kwargs): |
| 745 | result = json.loads(res.content.decode('utf-8', 'ignore'), strict=False) |
no test coverage detected