新闻发布
管理系统应用场景:
云智开发团队近接受的case中客户有这个需求,客户采用了一套内部的SAAS系统,系统支持类如微信一样的模板消息推送的功能,需要跟云智开发这套系统进行对接,开发过程中遇到了一点问题,API再本地和我们自己的服务器自己的服务器上没有问题,但是在客户的服务器上进行测试发现不通。
系统报错:
Failed connect to bee.quanshi.com:443; Connection refused
错误排查:
1、 程序本身的问题基本可以排除,因为我们自己的开发环境和测试环境是可以通信。
2、 API接口没有问题基本可以排除。
3、 基本上可以判断出问题出现在生产环境中了。
问题描述:
出于安全问题,甲方客户的所有系统环境都需要通过代理进行外网访问。
解决方案:
通过PHP自带函数CURL函数通信访问,以下是代码:
/** * 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; }