PHP語言開發微信公眾平台(訂閱號)之curl命令


在開發過程中,經常會遇到要求用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);

注:未經允許,禁止轉載

 


免責聲明!

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



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