问题描述
正式服使用file_get_contents访问API(HTTPS)接口时返回false,而测试服使用正常。
排查原因
正式服未安装php_openssl.dll扩展。
解决方案
1.安装php_openssl.dll扩展
2.使用curl进行API调用
// 使用file_get_contents()进行HTTPS API调用
public function api() {
$option = array (
'http' => array (
'header' => "Your_Header_Name: Your_Header_Value"
)
);
$url = 'https://www.baidu.com';
$res = file_get_contents ( $url, false, stream_context_create ( $option ) );
$result = json_decode ( $res, true );
}
// 使用curl()进行HTTPS API调用
public function api() {
$url = 'https://www.baidu.com'
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $site.$url);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
'Your_Header_Name: Your_Header_Value'
));
if (!empty($data)) {
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
}
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
// 结果为json字符串
$info = curl_exec($curl);
curl_close($curl);
$result = json_decode($info,true);
}
网友评论