From bf5cbfa5eb7605b942f5f3b6a88e17d126409fba Mon Sep 17 00:00:00 2001 From: sugar1569 Date: Wed, 7 Oct 2026 00:55:29 +0800 Subject: [PATCH] =?UTF-8?q?fix(Http=E5=B7=A5=E5=85=B7):=20=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=20curl=20=E9=94=99=E8=AF=AF=E8=AF=BB=E5=8F=96?= =?UTF-8?q?=E6=97=B6=E5=BA=8F=E5=B9=B6=E9=80=8F=E5=87=BA=E9=9D=9E200?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/crmeb/utils/Http.php | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/backend/crmeb/utils/Http.php b/backend/crmeb/utils/Http.php index 822caac85..3aebf9794 100644 --- a/backend/crmeb/utils/Http.php +++ b/backend/crmeb/utils/Http.php @@ -115,12 +115,18 @@ class Http //需安装系统 ca-certificates 或在 php.ini 配置 openssl.capath) curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2); - self::$curlError = curl_error($curl); - - list($content, $status) = [curl_exec($curl), curl_getinfo($curl), curl_close($curl)]; + //请求后获取 curl 错误与状态:curl_error 必须在 curl_exec 之后调用才有意义 + $content = curl_exec($curl); + self::$curlError = (string) curl_error($curl); + $status = curl_getinfo($curl); + curl_close($curl); self::$status = $status; - self::$headerStr = trim(substr($content, 0, $status['header_size'])); - $content = trim(substr($content, $status['header_size'])); + self::$headerStr = trim(substr((string) $content, 0, (int) $status['header_size'])); + $content = trim(substr((string) $content, (int) $status['header_size'])); + // 非 200 时把 HTTP 状态码并入错误信息(响应体大小不定,仅透出状态码供定位) + if ((int) ($status['http_code'] ?? 0) !== 200) { + self::$curlError = trim(self::$curlError ?: ('HTTP ' . ($status['http_code'] ?? 0))); + } return (intval($status["http_code"]) === 200) ? $content : false; }