在開發過程中,經常會遇到要求用curl命令調用接口的情況

那么,什么是curl,簡單來說curl是一個利用url語法規定來傳輸文件和哦數據的工具,支持很多協議,如 http、ftp、telent 等,所幸php 也支持 curl
curl雖然很復雜,但是很可以總結為四步。
curl操作四步走:
1.初始化 $ch = curl_init()
2.設置參數 curl_setopt($ch,參數)
3.執行 curl_exec($ch)
4.關閉 curl_close($ch)
輸出錯誤信息: curl_error($ch)
注意:
1.設置參數(相關參數說明)
常用參數
CURLOPT_URL :請求的url地址
CURLOPT_RETURNTRANSFER :捕獲內容,但不輸出(會把頁面的內容完全抓取過來)
CURLOPT_HEADER :設置頭信息
CURLOPT_POST :模擬發送 POST 請求
CURLOPT_POSTFIELDS :發送 POST 請求時所傳遞的參數
2.第一次請求時系統會報錯,代表服務器需要校驗SSL證書(SSL證書的問題:無法獲得當地發行者證書):SSL certificate problem:unable to get local issuer certificate
解決方法:可以通過curl禁止服務端校驗SSL,代碼如下:
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,false);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);
放到微信公眾號的開發中可按照如下代碼編寫:
1 <?php 2 //返回midia_id 3 $ch = curl_init(); 4 $url = "填寫需要請求訪問的地址"; 5 curl_setopt($ch,CURLOPT_URL,$url); 6 //捕獲內容但不輸出 7 curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); 8 //模擬發送POST請求 9 curl_setopt($ch,CURLOPT_POST,1); 10 //發送數據 11 $data = '填寫需要發送的數據'; 12 //發送POST請求時傳遞數據 13 curl_setopt($ch,CURLOPT_POSTFIELDS,$data); 14 //禁止服務器端校驗SSL 15 curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,false); 16 curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false); 17 //執行curl 18 $outopt = curl_exec($ch); 19 //通過判斷輸出錯誤 20 if($outopt==false) 21 { 22 echo curl_error($ch); 23 } 24 else 25 { 26 echo $outopt; 27 } 28 //關閉 29 curl_close($ch);
注:未經允許,禁止轉載
