post get delete put 請求

function postCurl($url,$body,$header,$type="POST"){
        //1.創建一個curl資源
        $ch = curl_init();
        //2.設置URL和相應的選項
        curl_setopt($ch,CURLOPT_URL,$url);//設置url
        //1)設置請求頭
        //array_push($header, 'Accept:application/json');
        //array_push($header,'Content-Type:application/json');
        //array_push($header, 'http:multipart/form-data');
        //設置爲false,只會獲得響應的正文(true的話會連響應頭一併獲取到)
        curl_setopt($ch,CURLOPT_HEADER,0);
        curl_setopt ( $ch, CURLOPT_TIMEOUT,5); // 設置超時限制防止死循環
        //設置發起連接前的等待時間,如果設置爲0,則無限等待。
        curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,5);
        //將curl_exec()獲取的信息以文件流的形式返回,而不是直接輸出。
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        //2)設備請求體
        if (count($body)>0) {
            //$b=json_encode($body,true);
            curl_setopt($ch, CURLOPT_POSTFIELDS, $body);//全部數據使用HTTP協議中的"POST"操作來發送。
        }
        //設置請求頭
        if(count($header)>0){
            curl_setopt($ch,CURLOPT_HTTPHEADER,$header);
        }
        //上傳文件相關設置
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
        curl_setopt($ch, CURLOPT_MAXREDIRS, 3);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);// 對認證證書來源的檢查
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);// 從證書中檢查SSL加密算

        //3)設置提交方式
        switch($type){
            case "GET":
                curl_setopt($ch,CURLOPT_HTTPGET,true);
                break;
            case "POST":
                curl_setopt($ch,CURLOPT_POST,true);
                break;
            case "PUT"://使用一個自定義的請求信息來代替"GET"或"HEAD"作爲HTTP請                                                      求。這對於執行"DELETE" 或者其他更隱蔽的HTT
                curl_setopt($ch,CURLOPT_CUSTOMREQUEST,"PUT");
                break;
            case "DELETE":
                curl_setopt($ch,CURLOPT_CUSTOMREQUEST,"DELETE");
                break;
        }


        //4)在HTTP請求中包含一個"User-Agent: "頭的字符串。-----必設

        curl_setopt($ch, CURLOPT_USERAGENT, 'SSTS Browser/1.0');
        curl_setopt($ch, CURLOPT_ENCODING, 'gzip');

        curl_setopt ( $ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0)' ); // 模擬用戶使用的瀏覽器
        //5)


        //3.抓取URL並把它傳遞給瀏覽器
        $res=curl_exec($ch);

        $result=json_decode($res,true);
        //4.關閉curl資源,並且釋放系統資源
        curl_close($ch);
        if(empty($result))
            return $res;
        else
            return $result;

    }
//例子
$header=array($this->getToken());
        $result=$this->postCurl($url,'',$header,"GET");
//參考環信服務器接口
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章