php訪問url(get和post請求)


 

  • get請求
    /*
     *  php訪問url路徑,get請求
     */
    function curl_file_get_contents($durl){
        // header傳送格式
        $headers = array(
            "token:1111111111111",
            "over_time:22222222222",
        );
        // 初始化
        $curl = curl_init();
        // 設置url路徑
        curl_setopt($curl, CURLOPT_URL, $durl);
        // 將 curl_exec()獲取的信息以文件流的形式返回,而不是直接輸出。
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true) ;
        // 在啟用 CURLOPT_RETURNTRANSFER 時候將獲取數據返回
        curl_setopt($curl, CURLOPT_BINARYTRANSFER, true) ;
        // 添加頭信息
        curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
        // CURLINFO_HEADER_OUT選項可以拿到請求頭信息
        curl_setopt($curl, CURLINFO_HEADER_OUT, true);
        // 不驗證SSL
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
        // 執行
        $data = curl_exec($curl);
        // 打印請求頭信息
//        echo curl_getinfo($curl, CURLINFO_HEADER_OUT);
        // 關閉連接
        curl_close($curl);
        // 返回數據
        return $data;
    }
  • post請求
    /*
     *   php訪問url路徑,post請求
     *
     *   durl   路徑url
     *   post_data   array()   post參數數據
     */
    public function curl_file_post_contents($durl, $post_data){
        // header傳送格式
        $headers = array(
            "token:1111111111111",
            "over_time:22222222222",
        );
        //初始化
        $curl = curl_init();
        //設置抓取的url
        curl_setopt($curl, CURLOPT_URL, $durl);
        //設置頭文件的信息作為數據流輸出
        curl_setopt($curl, CURLOPT_HEADER, false);
        //設置獲取的信息以文件流的形式返回,而不是直接輸出。
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
        //設置post方式提交
        curl_setopt($curl, CURLOPT_POST, true);
        // 設置post請求參數
        curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);
        // 添加頭信息
        curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
        // CURLINFO_HEADER_OUT選項可以拿到請求頭信息
        curl_setopt($curl, CURLINFO_HEADER_OUT, true);
        // 不驗證SSL
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
        //執行命令
        $data = curl_exec($curl);
        // 打印請求頭信息
//        echo curl_getinfo($curl, CURLINFO_HEADER_OUT);
        //關閉URL請求
        curl_close($curl);
        //顯示獲得的數據
        return $data;
    }
 
注:調用后可以通過json_decode來解析返回結果:如:
$data= $this->curl_file_post_contents($dataurl, $post_data);
$dataarr = json_decode($data, true);
 

補充:

使用post請求傳遞多維數組時報"Array to string conversion"錯誤

解決辦法:

使用 http_build_query() 函數處理一下參數。

改為:

curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($post_data));

 

 
 
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM