今天在curl 請求https接口時,遇到了問題,返回結果false。
// 查看錯誤信息 echo curl_errno($ch);
錯誤提示:Errnoerror:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol
嘗試解決辦法1:忽略SSL證書檢查
// 忽略SSL證書檢查 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
嘗試解決辦法2:設定SSL版本,1-3切換
// 設定SSL版本,1-3切換 curl_setopt($ch, CURLOPT_SSLVERSION, 3);
嘗試之后發現錯誤依舊哈,繼續查詢。。。
發現當通過錯誤的端口(例如80)請求HTTPS資源時,也將收到此類錯誤消息。因此,請確保在“請求”選項中指定了正確的端口443。
// 請求鏈接 curl_setopt($ch, CURLOPT_URL, $url); // 請求端口,SSL為443 curl_setopt($ch, CURLOPT_PORT, $port);
當發現這個解釋時,回頭一檢查,暈死,這種錯誤也能出現,壓根沒留意呀,哈哈還真是沒誰了。