| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 | 
							- <?php
 
- /**
 
-  * Created by PhpStorm.
 
-  * User: 中闽 < 1464674022@qq.com >
 
-  * Date: 2019/12/5
 
-  * Time: 17:44
 
-  */
 
- // +----------------------------------------------------------------------
 
- // curl方法
 
- // +----------------------------------------------------------------------
 
- /**
 
-  * get 请求
 
-  * @param $url
 
-  * @param array $params
 
-  * @param string $cookie
 
-  * @return array
 
-  */
 
- function get_url($url, $params = [], $cookie = "")
 
- {
 
-     if ($params) {
 
-         $url = $url . '?' . http_build_query($params);
 
-     }
 
-     $curl = new \network\CurlHelper($url);
 
-     $curl->setCookie($cookie);
 
-     $curl->exec();
 
-     return [$curl->getResponse(), $curl->getHttpCode(), $curl->getError()];
 
- }
 
- /**
 
-  * post 请求
 
-  * @param $url
 
-  * @param array $params
 
-  * @param array $header
 
-  * @param string $cookie
 
-  * @return array
 
-  */
 
- function post_url($url, $params = [], $header = [], $cookie = "")
 
- {
 
-     $curl = new \network\CurlHelper($url, $params);
 
-     $curl->setHeader($header);
 
-     $curl->setCookie($cookie);
 
-     $curl->exec();
 
-     return [$curl->getResponse(), $curl->getHttpCode(), $curl->getError()];
 
- }
 
- /**
 
-  * 提交json格式的请求
 
-  * @param $url
 
-  * @param array $params
 
-  * @return array
 
-  */
 
- function post_json($url, $params = [])
 
- {
 
-     $header = ['Content-Type: application/json; charset=utf-8', 'Content-Length:' . strlen(json_encode($params))];
 
-     $curl = new \network\CurlHelper($url, json_encode($params));
 
-     $curl->setHeader($header);
 
-     $curl->exec();
 
-     return [$curl->getResponse(), $curl->getHttpCode(), $curl->getError()];
 
- }
 
- /**
 
-  * 有的接口会通过cookie防采集
 
-  * @param $url
 
-  * @param $expire int 默认缓存一小时
 
-  * @return mixed
 
-  * @throws Exception
 
-  */
 
- function get_by_set_cookie($url, $expire = 3600)
 
- {
 
-     $cookieName = "cache-setcookie-key";
 
-     $cookieVal = isset($_COOKIE[$cookieName]) ? $_COOKIE[$cookieName] : "";
 
-     list($response, $httpCode) = get_url($url, [], $cookieVal);
 
-     if ($httpCode == 302) {
 
-         $curl = new \network\CurlHelper($url);
 
-         $curl->showResponseHeader();//输出响应头
 
-         $curl->exec();
 
-         $response = $curl->getResponse();
 
-         // 正则获取set-cookie
 
-         if (preg_match_all('/Set-Cookie: (.*?);/m', $response, $cookie)) {
 
-             $realCookie = implode(';', $cookie['1']);
 
-             setcookie($cookieName, $realCookie, time() + $expire);//缓存
 
-             list($response) = get_url($url, [], $cookieVal);
 
-         } else {
 
-             throw new Exception("获取Set-Cookie失败");
 
-         }
 
-     } else if ($httpCode == 301) {
 
-         throw new Exception("获取失败,返回301跳转");
 
-     } else if ($httpCode != 200) {
 
-         throw new Exception("获取失败,httpCode = $httpCode");
 
-     }
 
-     return $response;
 
- }
 
 
  |