站長資訊網
        最全最豐富的資訊網站

        php curl怎么使用post方法

        php curl使用post的方法:首先啟動一個CURL會話;然后對認證證書來源進行檢查;接著從證書中檢查SSL加密算法是否存在;最后以POST方式請求https協議接口即可。

        php curl怎么使用post方法

        本文操作環境:Windows7系統、PHP7.1版,DELL G3電腦

        php curl怎么使用post方法?

        PHP:CURL分別以GET、POST方式請求HTTPS/http協議接口api

        • curl以GET方式請求https協議接口

          function curl_get_https($url){         $curl = curl_init(); // 啟動一個CURL會話         curl_setopt($curl, CURLOPT_URL, $url);         curl_setopt($curl, CURLOPT_HEADER, 0);         curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);         curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 對認證證書來源的檢查         curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2); // 從證書中檢查SSL加密算法是否存在         $tmpInfo = curl_exec($curl); //返回api的json對象         //關閉URL請求         curl_close($curl);         return $tmpInfo;    //返回json對象     }
        • curl以POST方式請求https協議接口

            function curl_post_https($url,$data){ // 模擬提交數據函數         $curl = curl_init(); // 啟動一個CURL會話         curl_setopt($curl, CURLOPT_URL, $url); // 要訪問的地址         curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);              // 對認證證書來源的檢查         curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2);              // 從證書中檢查SSL加密算法是否存在         curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); // 模擬用戶使用的瀏覽器         curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自動跳轉         curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自動設置Referer         curl_setopt($curl, CURLOPT_POST, 1); // 發送一個常規的Post請求         curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // Post提交的數據包         curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 設置超時限制防止死循環         curl_setopt($curl, CURLOPT_HEADER, 0); // 顯示返回的Header區域內容         curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 獲取的信息以文件流的形式返回         $tmpInfo = curl_exec($curl); // 執行操作         if (curl_errno($curl)) {             echo 'Errno'.curl_error($curl);//捕抓異常         }         curl_close($curl); // 關閉CURL會話         return $tmpInfo; // 返回數據,json格式     }
        • 封裝的通用的接口

        /** * CURL GET || post請求 * @desc: GET與post都通用 * @author: Sindsun * @email: 2361313833@qq.com * @date: 2019年4月24日上午10:54:31 * @param: $url 請求的地址 *       $isPostRequest 默認true是GET請求,否則是POST請求 *       $data array  請求的參數 *       $certParam  array  ['cert_path']    ['key_path'] * @return: */ function curl_http($url, $isPostRequest=false, $data=[], $header=[], $certParam=[]){ // 模擬提交數據函數     $curlObj = curl_init(); // 啟動一個CURL會話     //如果是POST請求     if( $isPostRequest ){         curl_setopt($curlObj, CURLOPT_POST, 1); // 發送一個常規的Post請求         curl_setopt($curlObj, CURLOPT_POSTFIELDS, http_build_query($data)); // Post提交的數據包     }else{  //get請求檢查是否拼接了參數,如果沒有,檢查$data是否有參數,有參數就進行拼接操作         $getParamStr = '';         if(!empty($data) && is_array($data)){             $tmpArr = [];             foreach ($data as $k=>$v){                 $tmpArr[] = $k . '=' . $v;             }             $getParamStr = implode('&', $tmpArr);         }         //檢查鏈接中是否有參數         $url .= strpos($url, '?') !== false ? '&' . $getParamStr : '?' . $getParamStr;     }     curl_setopt($curlObj, CURLOPT_URL, $url); // 要訪問的地址     //檢查鏈接是否https請求     if(strpos($url, 'https') !== false){         //設置證書         if( !empty($certParam) && isset($certParam['cert_path']) && isset($certParam['key_path']) ){             curl_setopt($curlObj, CURLOPT_SSL_VERIFYPEER, 0); // 對認證證書來源的檢查             curl_setopt($curlObj, CURLOPT_SSL_VERIFYHOST, 2); // 從證書中檢查SSL加密算法是否存在             //設置證書             //使用證書:cert 與 key 分別屬于兩個.pem文件             curl_setopt($curlObj, CURLOPT_SSLCERTTYPE,'PEM');             curl_setopt($curlObj, CURLOPT_SSLCERT, $certParam['cert_path']);             curl_setopt($curlObj, CURLOPT_SSLKEYTYPE,'PEM');             curl_setopt($curlObj, CURLOPT_SSLKEY, $certParam['key_path']);         }else{             curl_setopt($curlObj, CURLOPT_SSL_VERIFYPEER, 0); // 對認證證書來源的檢查             curl_setopt($curlObj, CURLOPT_SSL_VERIFYHOST, 0); // 從證書中檢查SSL加密算法是否存在         }     }     // 模擬用戶使用的瀏覽器     if(isset($_SERVER['HTTP_USER_AGENT'])){         curl_setopt($curlObj, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);     }     curl_setopt($curlObj, CURLOPT_FOLLOWLOCATION, 1); // 使用自動跳轉     curl_setopt($curlObj, CURLOPT_AUTOREFERER, 1); // 自動設置Referer     curl_setopt($curlObj, CURLOPT_TIMEOUT, 30); // 設置超時限制防止死循環     curl_setopt($curlObj, CURLOPT_HEADER, 0); // 顯示返回的Header區域內容     curl_setopt($curlObj, CURLOPT_HTTPHEADER, $header);   //設置頭部     curl_setopt($curlObj, CURLOPT_RETURNTRANSFER, 1); // 獲取的信息以文件流的形式返回     $result = curl_exec($curlObj); // 執行操作     if ( curl_errno($curlObj) ) {         $result = 'error: '.curl_error($curlObj);//捕抓異常     }     curl_close($curlObj); // 關閉CURL會話     return $result; // 返回數據,json格式 }

        說明 :前提是打開php的curl開關和服務器的ssl_module,不然不能正常使用哦。

        推薦學習:《PHP視頻教程》

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 国产成人精品亚洲日本在线| 国产vA免费精品高清在线观看 | 一级做a爰黑人又硬又粗免费看51社区国产精品视| 精品无码久久久久久午夜| 免费精品久久久久久中文字幕| 国产AV国片精品有毛| 骚片AV蜜桃精品一区| 亚洲电影日韩精品 | 精品国产美女福利到在线不卡 | 亚洲AV无码成人精品区天堂| 欧美精品91欧美日韩操| 国产精品欧美久久久久无广告| 2021国产精品视频| 久久国产精品一国产精品金尊| 亚洲av无码成人精品区在线播放 | 国产精品成人一区二区| 欧产日产国产精品精品| 欧美日韩国产精品自在自线| 国产成人精品cao在线| 欧美精品免费观看二区| 国产精品爽黄69天堂a| 国产精品久久久久久吹潮| 久久99精品久久只有精品| 无码囯产精品一区二区免费| 中文字幕在线亚洲精品| 亚洲精品欧美二区三区中文字幕| 日产国产精品亚洲系列| 青青热久久国产久精品 | 亚洲精品性视频| 亚洲综合精品香蕉久久网97| 亚洲国产精品久久| 2021国产精品视频网站| 欧美国产亚洲精品高清不卡| 欧美激情精品久久久久| 亚洲精品福利视频| 亚洲国产精品lv| 国产精品日韩欧美在线第3页 | 国内精品伊人久久久久av一坑| 精品久久久无码人妻中文字幕豆芽| 国产午夜精品久久久久免费视| 国产AV午夜精品一区二区三区|