正在显示
1 个修改的文件
包含
41 行增加
和
28 行删除
| 1 | <?php | 1 | <?php |
| 2 | + | ||
| 2 | namespace Jiaoyin; | 3 | namespace Jiaoyin; |
| 3 | 4 | ||
| 4 | -class Curl{ | 5 | +class Curl |
| 6 | +{ | ||
| 5 | 7 | ||
| 6 | // get 获取数据 | 8 | // get 获取数据 |
| 7 | - static public function httpGet($url, $param=[], $header=[]){ | ||
| 8 | - if(empty($url)){ | 9 | + static public function httpGet($url, $param = [], $header = []) |
| 10 | + { | ||
| 11 | + if (empty($url)) { | ||
| 9 | return false; | 12 | return false; |
| 10 | } | 13 | } |
| 11 | - if(count($param) > 0){ | ||
| 12 | - $url = $url.'?'.http_build_query($param); | 14 | + if (count($param) > 0) { |
| 15 | + $url = $url . '?' . http_build_query($param); | ||
| 13 | } | 16 | } |
| 14 | $ch = curl_init(); | 17 | $ch = curl_init(); |
| 15 | - $ch = self::curlSet($ch,$url, $header); | 18 | + $ch = self::curlSet($ch, $url, $header); |
| 16 | $output = curl_exec($ch); | 19 | $output = curl_exec($ch); |
| 17 | - if($output === false){ | 20 | + if ($output === false) { |
| 18 | echo 'Curl error: ' . curl_error($ch); | 21 | echo 'Curl error: ' . curl_error($ch); |
| 19 | } | 22 | } |
| 20 | curl_close($ch); | 23 | curl_close($ch); |
| @@ -22,41 +25,50 @@ class Curl{ | @@ -22,41 +25,50 @@ class Curl{ | ||
| 22 | } | 25 | } |
| 23 | 26 | ||
| 24 | //post 获取数据 | 27 | //post 获取数据 |
| 25 | - static public function httpPost($url, $param=[], $header=[]){ | ||
| 26 | - if(empty($url)){ | 28 | + static public function httpPost($url, $param = [], $header = []) |
| 29 | + { | ||
| 30 | + if (empty($url)) { | ||
| 27 | return false; | 31 | return false; |
| 28 | } | 32 | } |
| 29 | $ch = curl_init(); | 33 | $ch = curl_init(); |
| 30 | $ch = self::curlSet($ch, $url, $header); | 34 | $ch = self::curlSet($ch, $url, $header); |
| 31 | - $opts=[]; | ||
| 32 | - $opts[CURLOPT_POST]=1; | ||
| 33 | - $opts[CURLOPT_USERAGENT]="Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.98 Safari/537.36"; | ||
| 34 | - if (!empty($header) && in_array('Content-Type:application/json', $header)) { | ||
| 35 | - $opts[CURLOPT_POSTFIELDS]= json_encode($param); | ||
| 36 | - } else { | ||
| 37 | - $opts[CURLOPT_POSTFIELDS] = http_build_query($param); | 35 | + $opts = []; |
| 36 | + $opts[CURLOPT_POST] = 1; | ||
| 37 | + $opts[CURLOPT_USERAGENT] = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.98 Safari/537.36"; | ||
| 38 | + | ||
| 39 | + // 修改判断逻辑 | ||
| 40 | + $isJson = false; | ||
| 41 | + foreach ($header as $h) { | ||
| 42 | + if (stripos($h, 'Content-Type: application/json') !== false) { | ||
| 43 | + $isJson = true; | ||
| 44 | + break; | ||
| 45 | + } | ||
| 38 | } | 46 | } |
| 47 | + | ||
| 48 | + $opts[CURLOPT_POSTFIELDS] = $isJson ? json_encode($param) : http_build_query($param); | ||
| 49 | + | ||
| 39 | curl_setopt_array($ch, $opts); | 50 | curl_setopt_array($ch, $opts); |
| 40 | $output = curl_exec($ch); | 51 | $output = curl_exec($ch); |
| 41 | - if($output === false){ | 52 | + if ($output === false) { |
| 42 | echo 'Curl error: ' . curl_error($ch); | 53 | echo 'Curl error: ' . curl_error($ch); |
| 43 | } | 54 | } |
| 44 | curl_close($ch); | 55 | curl_close($ch); |
| 45 | return $output; | 56 | return $output; |
| 46 | } | 57 | } |
| 47 | //delete 请求 | 58 | //delete 请求 |
| 48 | - static public function httpDelete($url, $param=[], $header=[]){ | ||
| 49 | - if(empty($url)){ | 59 | + static public function httpDelete($url, $param = [], $header = []) |
| 60 | + { | ||
| 61 | + if (empty($url)) { | ||
| 50 | return false; | 62 | return false; |
| 51 | } | 63 | } |
| 52 | - if(count($param) > 0){ | ||
| 53 | - $url = $url.'?'.http_build_query($param); | 64 | + if (count($param) > 0) { |
| 65 | + $url = $url . '?' . http_build_query($param); | ||
| 54 | } | 66 | } |
| 55 | $ch = curl_init(); | 67 | $ch = curl_init(); |
| 56 | $ch = self::curlSet($ch, $url, $header); | 68 | $ch = self::curlSet($ch, $url, $header); |
| 57 | curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'DELETE'); | 69 | curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'DELETE'); |
| 58 | $output = curl_exec($ch); | 70 | $output = curl_exec($ch); |
| 59 | - if($output === false){ | 71 | + if ($output === false) { |
| 60 | echo 'Curl error: ' . curl_error($ch); | 72 | echo 'Curl error: ' . curl_error($ch); |
| 61 | } | 73 | } |
| 62 | curl_close($ch); | 74 | curl_close($ch); |
| @@ -64,19 +76,20 @@ class Curl{ | @@ -64,19 +76,20 @@ class Curl{ | ||
| 64 | } | 76 | } |
| 65 | 77 | ||
| 66 | //curl 参数设置 | 78 | //curl 参数设置 |
| 67 | - static private function curlSet($ch,$url, $header){ | ||
| 68 | - curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true) ; | 79 | + static private function curlSet($ch, $url, $header) |
| 80 | + { | ||
| 81 | + curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); | ||
| 69 | curl_setopt($ch, CURLOPT_URL, $url); | 82 | curl_setopt($ch, CURLOPT_URL, $url); |
| 70 | //参数为1表示传输数据,为0表示直接输出显示。 | 83 | //参数为1表示传输数据,为0表示直接输出显示。 |
| 71 | curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); | 84 | curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); |
| 72 | //参数为0表示不带头文件,为1表示带头文件 | 85 | //参数为0表示不带头文件,为1表示带头文件 |
| 73 | - curl_setopt($ch, CURLOPT_HEADER,0); | ||
| 74 | - if(!empty($header)){ | ||
| 75 | - curl_setopt($ch, CURLOPT_HTTPHEADER,$header); | 86 | + curl_setopt($ch, CURLOPT_HEADER, 0); |
| 87 | + if (!empty($header)) { | ||
| 88 | + curl_setopt($ch, CURLOPT_HTTPHEADER, $header); | ||
| 76 | } | 89 | } |
| 77 | // 关闭SSL验证 | 90 | // 关闭SSL验证 |
| 78 | curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); | 91 | curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); |
| 79 | curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); | 92 | curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); |
| 80 | return $ch; | 93 | return $ch; |
| 81 | } | 94 | } |
| 82 | -} | ||
| 95 | +} |
-
请 注册 或 登录 后发表评论