新聞發(fā)布
管理系統(tǒng)應(yīng)用場景:
云智開發(fā)團隊近接受的case中客戶有這個需求,客戶采用了一套內(nèi)部的SAAS系統(tǒng),系統(tǒng)支持類如微信一樣的模板消息推送的功能,需要跟云智開發(fā)這套系統(tǒng)進行對接,開發(fā)過程中遇到了一點問題,API再本地和我們自己的服務(wù)器自己的服務(wù)器上沒有問題,但是在客戶的服務(wù)器上進行測試發(fā)現(xiàn)不通。
系統(tǒng)報錯:
Failed connect to bee.quanshi.com:443; Connection refused
錯誤排查:
1、 程序本身的問題基本可以排除,因為我們自己的開發(fā)環(huán)境和測試環(huán)境是可以通信。
2、 API接口沒有問題基本可以排除。
3、 基本上可以判斷出問題出現(xiàn)在生產(chǎn)環(huán)境中了。
問題描述:
出于安全問題,甲方客戶的所有系統(tǒng)環(huán)境都需要通過代理進行外網(wǎng)訪問。
解決方案:
通過PHP自帶函數(shù)CURL函數(shù)通信訪問,以下是代碼:
/** * curl,post方式 * @param $url * @param $curlPost * @return mixed */ function curl($url,$curlPost){ $curl = curl_init();; curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_HEADER, 0); curl_setopt($curl, CURLOPT_HTTPHEADER, ['Accept: application/json','Content-Type:application/json;charset=utf-8']); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_NOBODY, true); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // https請求 不驗證證書和hosts curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl,CURLOPT_PROXYTYPE,CURLPROXY_HTTP);//使用了HTTP代理 curl_setopt($curl, CURLOPT_PROXY, "https:// xxx.xxx.xxx. xxx:8000");//HTTP代理地址 curl_setopt($curl, CURLOPT_POSTFIELDS, $curlPost); $result = curl_exec($curl); curl_close($curl); return $result; }