Request an HTTPS URL in CURL, and respond to troubleshooting and analysis of FALSE
1. Request an HTTPS URL in curl, and the response is False’s troubleshooting analysis. var_dump($rst), whose value is false
$json = Helper::curlRequest("https://api.weixin.qq.com/sns/jscode2session?appid={$config['id']}&secret={$config['secret']}&js_code={$code}&grant_type=authorization_code");
public static function curlRequest($url, $params = array(), $isreturn = true, $ispost = 0, $referer = '', $need_header = false, $user_agent = 'Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)')
{
if (empty($referer)) {
$urlinfo = parse_url($url);
if (isset($urlinfo['scheme'])) {
$referer = $urlinfo['scheme'] . '://' . $urlinfo['host'] . '/';
} else {
$referer = '//' . $urlinfo['host'] . '/';
}
}
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
//curl_setopt($ch, CURLOPT_AUTOREFERER, $referer);
curl_setopt($ch, CURLOPT_REFERER, $referer);
curl_setopt($ch, CURLOPT_HEADER, $need_header);
curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
//curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36');
if ($ispost) {
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
}
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$rst = curl_exec($ch);
curl_close($ch);
if ($isreturn) {
return $rst;
}
}
2. Configure openssl.cafile in php.ini. False no longer responds after restarting php-fpm
openssl.cafile = /etc/ssl/certs/cacert.pem