123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- <?php
- namespace App\Support;
- class Curl{
- /**
- * @param $url
- * @param array $body
- * @param array $headers
- * @param int $timeout 设置等待时间
- * @return mixed
- */
- public static function post($url, $body = [], $headers = [], $jsonType = true, $timeout = 10)
- {
- try{
- $opt = [
- CURLOPT_URL => $url,
- CURLOPT_RETURNTRANSFER => true, //要求结果为字符串且输出到屏幕上
- CURLOPT_SSL_VERIFYPEER => false, //https请求 不验证证书和hosts
- CURLOPT_SSL_VERIFYHOST => false,
- CURLOPT_POST => true,
- CURLOPT_HEADER => false, // 不输出响应头信息
- CURLOPT_TIMEOUT => $timeout,
- ];
- if (!empty($headers)) {
- foreach ($headers as $key => $value) {
- $opt[CURLOPT_HTTPHEADER][] = $key.':'.$value;
- }
- }
- if ($jsonType) {
- $opt[CURLOPT_POSTFIELDS] = json_encode($body);
- } else {
- $opt[CURLOPT_POSTFIELDS] = http_build_query($body);
- }
- $curl = curl_init();
- curl_setopt_array($curl, $opt);
- $output = curl_exec($curl); // 执行
- curl_close($curl);
- } catch(\Exception $e) {
- Log::error('出现异常', [
- 'url' => $url,
- 'body' => $body,
- 'headers' => $headers,
- ], 'curlpost_exception');
- return false;
- }
- return $output;
- }
- /**
- * @param $url
- * @param array $headers
- * @param int $timeout 设置等待时间
- * @return mixed
- */
- public static function get($url, array $headers = [], $timeout = 10)
- {
- try{
- $opt = [
- CURLOPT_RETURNTRANSFER => true, //要求结果为字符串且输出到屏幕上
- CURLOPT_SSL_VERIFYPEER => false,
- CURLOPT_SSL_VERIFYHOST => false,
- CURLOPT_HEADER => false, // 不输出响应头信息
- CURLOPT_TIMEOUT => $timeout,
- ];
- if (!empty($headers)) {
- foreach ($headers as $key => $value) {
- $opt[CURLOPT_HTTPHEADER][] = $key.':'.$value;
- }
- }
- $curl = curl_init($url);
- curl_setopt_array($curl, $opt);
- $output = curl_exec($curl); // 执行
- curl_close($curl);
- } catch(\Exception $e) {
- Log::error('出现异常', [
- 'url' => $url,
- 'headers' => $headers,
- ], 'curlget_exception');
- return false;
- }
- return $output;
- }
- }
|