YII2 使用curl請求,返回false


一. 起因:

今天用yii框架,請求java接口,始終返回false.

二. 分析歷程:

使用curl_error()方法打印出Peer’s Certificate issuer is not recognized。

翻譯出來的意思是ssl證書未認證通過,證書問題?不細揪,通過結果判斷,就是證書的問題。

不過畢竟是第三方的接口,要解決需要聯系運維,查看證書,還要重新設置證書路徑,很麻煩,不好處理。

附上要設置的(未驗證),供參考

curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, true);
curl_setopt($curl,CURLOPT_CAINFO,dirname(__FILE__).'/cacert.pem');

三. 解決辦法

關掉curl對於證書的驗證。不過curl類的封裝是統一的,為了不影響其他的代碼。

php curl關掉ssl驗證: 

curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true);//原生

$curl->setOption(CURLOPT_SSL_VERIFYPEER=>0);//YII2

在此過程中還遇到了,對方接口不識別返回的json數據

解決辦法,設置header

$curl->setHeaders(['Content-Type' => 'application/json']);

結果,再次測試,接口通了。


免責聲明!

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



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