php h2,微信连接失败:一直返回<h2>Moved</h2> (终于搞定了)
这几天都OK的,可以正常访问,统计数据上只出现过一次访问失败,但是平均耗时增加了30%估计是上次那个心脏滴血事件后,腾讯要求停用SSLv3,必须用TLSv1,但是之前一直没有停止SSLv3的支持,现在真停了因为这部分代码以前没动过,一直好好的,突然就挂了加了curl_setopt($curl,CURLOPT_CAINFO,$this->config->cacert); 后就OK了,但是
这几天都OK的,可以正常访问,统计数据上只出现过一次访问失败,但是平均耗时增加了30%
估计是上次那个心脏滴血事件后,腾讯要求停用SSLv3,必须用TLSv1,但是之前一直没有停止SSLv3的支持,现在真停了
因为这部分代码以前没动过,一直好好的,突然就挂了
加了
curl_setopt($curl,CURLOPT_CAINFO,$this->config->cacert); 后就OK了,但是一直会出现CURL_SSLVERSION_TLSv1没有定义,因为后面还得加:curl_setopt($curl, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1);
修改后的wechatapi.class.php的get和post方法:
/**
* Make a http get request and fetch the contents.
*
* @param string $url
* @access public
* @return string
*/
public function get($url)
{
if(!function_exists('curl_init')) die('I can\'t fetch anything, please set allow_url_fopen to ture or install curl extension');
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
if(isset($this->config->cacert)) {
curl_setopt($curl,CURLOPT_CAINFO,$this->config->cacert);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2);
// curl_setopt($curl, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1);
curl_setopt($curl, CURLOPT_SSLVERSION, 1);
}else {
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
}
curl_setopt($curl, CURLOPT_TIMEOUT, 500);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($curl);
curl_close($curl);
return $response;
}
/**
* Make a http post request.
*
* @param string $url
* @param string $data
* @access public
* @return void
*/
public function post($url, $data)
{
if(!function_exists('curl_init')) die('I can\'t do post action without curl extension.');
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
if(isset($this->config->cacert)) {
curl_setopt($curl,CURLOPT_CAINFO,$this->config->cacert);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($curl, CURLOPT_SSLVERSION, 1);
}else {
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
}
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
$response = curl_exec($curl);
curl_close($curl);
return $response;
}
其中那个$config->cacert是个变量:
$config->cacert='D:\php\tools\https-ca\ca-bundle.crt';
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)