站長資訊網(wǎng)
        最全最豐富的資訊網(wǎng)站

        php curl怎么使用post方法

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

        php curl怎么使用post方法

        本文操作環(huán)境:Windows7系統(tǒng)、PHP7.1版,DELL G3電腦

        php curl怎么使用post方法?

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

        • curl以GET方式請求https協(xié)議接口

          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); // 對認(rèn)證證書來源的檢查         curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2); // 從證書中檢查SSL加密算法是否存在         $tmpInfo = curl_exec($curl); //返回api的json對象         //關(guān)閉URL請求         curl_close($curl);         return $tmpInfo;    //返回json對象     }
        • curl以POST方式請求https協(xié)議接口

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

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

        說明 :前提是打開php的curl開關(guān)和服務(wù)器的ssl_module,不然不能正常使用哦。

        推薦學(xué)習(xí):《PHP視頻教程》

        贊(0)
        分享到: 更多 (0)
        網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號
        主站蜘蛛池模板: 精品国际久久久久999波多野| 99久久精品毛片免费播放| 亚洲av午夜福利精品一区 | 精品福利一区二区三区| 国内精品久久久久久99蜜桃| 欧美激情精品久久久久久| 色花堂国产精品第一页| 久久国产精品99精品国产| 免费视频成人国产精品网站| 一级成人精品h| 99精品热这里只有精品| 宅男宅女精品国产AV天堂| 久久se这里只有精品| 99久久精品费精品国产| 99麻豆久久久国产精品免费| 亚洲∧v久久久无码精品| 人妻少妇精品无码专区动漫| 国产精品极品| 四虎最新永久在线精品免费| 国产AV国片精品| 精品久久久久久亚洲精品| 中文字幕亚洲精品无码| 亚洲精品麻豆av| 亚洲精品成a人在线观看| 日韩精品一区二区三区在线观看| 精品熟女少妇aⅴ免费久久| 国产精品自在拍一区二区不卡| 中国精品videossex中国高清| 国产精品一区二区久久| 国产日韩欧美精品| 97精品国产91久久久久久| 国产精品99久久免费观看| 精品无码国产污污污免费网站 | 精品久久一区二区| 97久久精品国产精品青草| 国产精品视频一区二区三区四| 日韩精品无码久久久久久| 亚洲国产精品成人精品无码区 | 最新国产精品无码| 中文字幕日韩精品在线| 无码人妻精品一区二区三区久久 |