Nenhuma Descrição

Curl.php 2.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. <?php
  2. namespace App\Support;
  3. class Curl{
  4. /**
  5. * @param $url
  6. * @param array $body
  7. * @param array $headers
  8. * @param int $timeout 设置等待时间
  9. * @return mixed
  10. */
  11. public static function post($url, $body = [], $headers = [], $jsonType = true, $timeout = 10)
  12. {
  13. try{
  14. $opt = [
  15. CURLOPT_URL => $url,
  16. CURLOPT_RETURNTRANSFER => true, //要求结果为字符串且输出到屏幕上
  17. CURLOPT_SSL_VERIFYPEER => false, //https请求 不验证证书和hosts
  18. CURLOPT_SSL_VERIFYHOST => false,
  19. CURLOPT_POST => true,
  20. CURLOPT_HEADER => false, // 不输出响应头信息
  21. CURLOPT_TIMEOUT => $timeout,
  22. ];
  23. if (!empty($headers)) {
  24. foreach ($headers as $key => $value) {
  25. $opt[CURLOPT_HTTPHEADER][] = $key.':'.$value;
  26. }
  27. }
  28. if ($jsonType) {
  29. $opt[CURLOPT_POSTFIELDS] = json_encode($body);
  30. } else {
  31. $opt[CURLOPT_POSTFIELDS] = http_build_query($body);
  32. }
  33. $curl = curl_init();
  34. curl_setopt_array($curl, $opt);
  35. $output = curl_exec($curl); // 执行
  36. curl_close($curl);
  37. } catch(\Exception $e) {
  38. Log::error('出现异常', [
  39. 'url' => $url,
  40. 'body' => $body,
  41. 'headers' => $headers,
  42. ], 'curlpost_exception');
  43. return false;
  44. }
  45. return $output;
  46. }
  47. /**
  48. * @param $url
  49. * @param array $headers
  50. * @param int $timeout 设置等待时间
  51. * @return mixed
  52. */
  53. public static function get($url, array $headers = [], $timeout = 10)
  54. {
  55. try{
  56. $opt = [
  57. CURLOPT_RETURNTRANSFER => true, //要求结果为字符串且输出到屏幕上
  58. CURLOPT_SSL_VERIFYPEER => false,
  59. CURLOPT_SSL_VERIFYHOST => false,
  60. CURLOPT_HEADER => false, // 不输出响应头信息
  61. CURLOPT_TIMEOUT => $timeout,
  62. ];
  63. if (!empty($headers)) {
  64. foreach ($headers as $key => $value) {
  65. $opt[CURLOPT_HTTPHEADER][] = $key.':'.$value;
  66. }
  67. }
  68. $curl = curl_init($url);
  69. curl_setopt_array($curl, $opt);
  70. $output = curl_exec($curl); // 执行
  71. curl_close($curl);
  72. } catch(\Exception $e) {
  73. Log::error('出现异常', [
  74. 'url' => $url,
  75. 'headers' => $headers,
  76. ], 'curlget_exception');
  77. return false;
  78. }
  79. return $output;
  80. }
  81. }