MCPcopy Create free account
hub / github.com/Tron521/codex-console-temp / _make_request

Method _make_request

src/services/cloud_mail.py:168–227  ·  view source on GitHub ↗

发送请求并返回 JSON 数据 Args: method: HTTP 方法 path: 请求路径(以 / 开头) retry_on_auth_error: 认证失败时是否重试 **kwargs: 传递给 requests 的额外参数 Returns: 响应 JSON 数据 Raises: EmailServiceError: 请求失败

(
        self,
        method: str,
        path: str,
        retry_on_auth_error: bool = True,
        **kwargs
    )

Source from the content-addressed store, hash-verified

166 }
167
168 def _make_request(
169 self,
170 method: str,
171 path: str,
172 retry_on_auth_error: bool = True,
173 **kwargs
174 ) -> Any:
175 """
176 发送请求并返回 JSON 数据
177
178 Args:
179 method: HTTP 方法
180 path: 请求路径(以 / 开头)
181 retry_on_auth_error: 认证失败时是否重试
182 **kwargs: 传递给 requests 的额外参数
183
184 Returns:
185 响应 JSON 数据
186
187 Raises:
188 EmailServiceError: 请求失败
189 """
190 url = f"{self.config['base_url']}{path}"
191 kwargs.setdefault("headers", {})
192 kwargs["headers"].update(self._get_headers())
193 kwargs.setdefault("timeout", self.config["timeout"])
194
195 try:
196 response = self.session.request(method, url, **kwargs)
197
198 if response.status_code >= 400:
199 # 如果是认证错误且允许重试,刷新 token 后重试一次
200 if response.status_code == 401 and retry_on_auth_error:
201 logger.warning("Cloud Mail 认证失败,尝试刷新 token")
202 kwargs["headers"].update(self._get_headers(self._get_token(force_refresh=True)))
203 response = self.session.request(method, url, **kwargs)
204
205 if response.status_code >= 400:
206 error_msg = f"请求失败: {response.status_code}"
207 try:
208 error_data = response.json()
209 error_msg = f"{error_msg} - {error_data}"
210 except Exception:
211 error_msg = f"{error_msg} - {response.text[:200]}"
212 self.update_status(False, EmailServiceError(error_msg))
213 raise EmailServiceError(error_msg)
214
215 try:
216 return response.json()
217 except Exception:
218 return {"raw_response": response.text}
219
220 except requests.RequestException as e:
221 self.update_status(False, e)
222 raise EmailServiceError(f"请求失败: {method} {path} - {e}")
223 except Exception as e:
224 self.update_status(False, e)
225 if isinstance(e, EmailServiceError):

Callers 2

get_verification_codeMethod · 0.95
get_email_messagesMethod · 0.95

Calls 7

_get_headersMethod · 0.95
_get_tokenMethod · 0.95
EmailServiceErrorClass · 0.85
warningMethod · 0.80
requestMethod · 0.45
jsonMethod · 0.45
update_statusMethod · 0.45

Tested by

no test coverage detected