簡單封裝一個curl 的get/post請求的方法 帶cookie參數

不多說,直接貼代碼,以備今後用到


/**
 * curl發送http請求
 * @param string $url url地址
 * @param array $arr post要提交的參數,鍵值數組
 * @param cookie $cookie post要提交的參數,多個參數用分號隔開
 * @parma       string         $type      請求類型,默認get
 * @parma       boolean        $json      是否返回json  默認是json返回
 */
function http_curl($url, $arr = '', $type = 'get', $cookie = '' ,$header = '0', $json = true)
{
    $ch = curl_init();//初始化curl
    //不驗證ssl
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($ch, CURLOPT_URL, $url);//抓取指定網頁
    curl_setopt($ch, CURLOPT_HEADER, $header);//設置header
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//要求結果爲字符串且輸出到屏幕上
    curl_setopt($ch,CURLOPT_COOKIE, $cookie);//帶cookie參數
    //curl_setopt($ch,CURLOPT_COOKIE, 'user=***;key=***');

    if ($type == 'post') {
        curl_setopt($ch, CURLOPT_POST, 1);
        if ($arr) {
            curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($arr));//處理二維數組
//            curl_setopt($ch, CURLOPT_POSTFIELDS, $arr);//一維數組
        }
    }
    $data = curl_exec($ch);//運行curl
    curl_close($ch);
    if ($json) {
        return json_decode($data, true);
    } else {
        return $data;
    }
}

 

調用:

普通登錄

public function login(){
        $url = 'http://openapi.fairsense.cn/api/v2/project/user/login';
        $param = [
            'username'=>'*****',
            'password'=>'*****@'
        ];
        $result =  http_curl($url,$param,'post');//post調用

        return $result;
    }

帶cookie參數的調用

 public function stations(){
        $url = 'http://openapi.fairsense.cn/api/v2/stations';
        $result = self::login();

        if($result){
            $param = [];
            //cookie值,字符串類型,多字段中間用分號隔開
            $cookie = 'username=zzjkq;'.'ssid='.$result;
            $data =  http_curl($url,$param,'post',$cookie);
        }
}

 

備註:前面看到一個寫的不錯的文章,適合我這種新手,貼上網址先http://www.php.cn/php-weizijiaocheng-393305.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章