get(IdGeneratorInterface::class); return $generator->generate(); } public static function http_get($url) { $oCurl = curl_init(); if (stripos($url, "https://") !== false) { curl_setopt($oCurl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($oCurl, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($oCurl, CURLOPT_SSLVERSION, 1); //CURL_SSLVERSION_TLSv1 } curl_setopt($oCurl, CURLOPT_URL, $url); curl_setopt($oCurl, CURLOPT_RETURNTRANSFER, 1); $sContent = curl_exec($oCurl); $aStatus = curl_getinfo($oCurl); curl_close($oCurl); if (intval($aStatus["http_code"]) == 200) { return $sContent; } else { return false; } } /** * POST 请求 * @param string $url * @param array $param * @param boolean $post_file 是否文件上传 * @return string content */ public static function http_post($url, $param, $post_file = false) { $oCurl = curl_init(); if (stripos($url, "https://") !== false) { curl_setopt($oCurl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($oCurl, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($oCurl, CURLOPT_SSLVERSION, 1); //CURL_SSLVERSION_TLSv1 } if (is_string($param) || $post_file) { $strPOST = $param; } else { $aPOST = []; foreach ($param as $key => $val) { $aPOST[] = $key . "=" . urlencode($val); } $strPOST = join("&", $aPOST); } curl_setopt($oCurl, CURLOPT_URL, $url); curl_setopt($oCurl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($oCurl, CURLOPT_POST, true); curl_setopt($oCurl, CURLOPT_POSTFIELDS, $strPOST); $sContent = curl_exec($oCurl); $aStatus = curl_getinfo($oCurl); curl_close($oCurl); if (intval($aStatus["http_code"]) == 200) { return $sContent; } else { return false; } } /** * POST 请求 * @param string $url * @param array $param * @param boolean $post_file 是否文件上传 * @return string content */ public static function http_post_zp($url, $data, $options = []) { // 初始化CURL会话 $ch = curl_init($url); var_dump("参数:",$data); // 设置CURL选项 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 将curl_exec()获取的信息以文件流的形式返回,而不是直接输出。 curl_setopt($ch, CURLOPT_HEADER, false); // 将curl_exec()获取的信息以文件流的形式返回,而不是直接输出。 curl_setopt($ch, CURLOPT_POST, true); // 发送一个常规的POST请求。 curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data)); // 要传递的POST数据,这里使用http_build_query将数组转换为URL编码的查询字符串。 $headers = [ 'Authorization: Bearer be1856920c54ac537b530d69bc2eda73.gOO2BMq9NXavzEMq', 'Content-Type: application/json', // 'Custom-Header: customHeaderValue' ]; curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); // 如果有额外的CURL选项,则合并它们 if (!empty($options)) { curl_setopt_array($ch, $options); } // 执行CURL会话并获取响应 $response = curl_exec($ch); // 检查是否有CURL错误 if (curl_errno($ch)) { $error_msg = curl_error($ch); curl_close($ch); throw new Exception("CURL Error: $error_msg"); } // 获取HTTP状态码 $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); // 关闭CURL会话 curl_close($ch); // 返回一个包含响应和HTTP状态码的数组 $responseBody = $response; $headerEnd = strpos($response, "\r\n\r\n"); if ($headerEnd !== false) { // 去除响应头,只保留响应体 $responseBody = substr($response, $headerEnd + 4); // +4 是因为 "\r\n\r\n" 有4个字符 // echo $responseBody; // 输出:This is the response body. } else { // 如果没有找到空行,可能响应格式不正确或没有响应头 // echo "No headers found in response."; } return [ 'response' => $responseBody, 'http_code' => $http_code ]; } }