YII2 使用curl請求,返回false

一. 原由:

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

二. 分析歷程:

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

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

不過畢竟是第三方的接口,要解決須要聯繫運維,查看證書,還要從新設置證書路徑,很麻煩,很差處理。app

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

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驗證: yii

curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true);//原生 $curl->setOption(CURLOPT_SSL_VERIFYPEER=>0);//YII2

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

解決辦法,設置header測試

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

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

相關文章
相關標籤/搜索