php用curl时,HTTP链接正常,HTTPS时,获取不到数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php用curl时,HTTP链接正常,HTTPS时,获取不到数据相关的知识,希望对你有一定的参考价值。

php用curl时,HTTP链接正常,HTTPS时,获取不到数据,http_code为0.是否跟服务器的配置有关?(其它服务器正常,只是这一台服务器不行哟)

参考技术A https 需要认证。

简易方法 (不认证,不安全)
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

安全方法(认证,安全):

用firefox查出网站的CA certificate,下戴, 然后
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_CAINFO, getcwd() . "/CAcerts/BuiltinObjectToken-EquifaxSecureCA.crt");

php 请求远程链接

php 请求远程链接一般情况下解析别人的接口时经常用到,一般我们会想到用file_get_contents这个函数,但是次函数的效率比较低,如果大范围使用的话可能会造成页面卡顿的现象,所以比较理想的方法是用curl,下面我简单的分享一下:

一、curl get 请求:

$url ‘127.0.0.1/test.php‘;//换成你要请求的url地址即可。
//初始化一个 cURL 对象
$ch  = curl_init();
//设置你需要抓取的URL
curl_setopt($ch, CURLOPT_URL, $url);
// 设置cURL 参数,要求结果保存到字符串中还是输出到屏幕上。
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//是否获得跳转后的页面
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
$data = curl_exec($ch);
curl_close($ch);
echo $data;
 
二、curl post 请求:
function curl_post($url$arr_data){
   $post_data = http_build_query($url_data);
   $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch,  CURLOPT_POSTFLELDS, $post_data);
    $data = curl_exec($ch);
    curl_close($ch);
    echo $data;
}
$arr_post array(
    ‘name‘=>‘test_name‘,
    ‘age‘   => 1
);
curl_post("http://www.explame.com/"$arr_post);
 
curl,也经常用于采集网页数据时使用。

以上是关于php用curl时,HTTP链接正常,HTTPS时,获取不到数据的主要内容,如果未能解决你的问题,请参考以下文章

php中的cURL不起作用

php使用curl扩展请求HTTPS链接报sslv3 alert 错误

php curl 获取 discuz时最后一步 发帖错误

PHP使用curl请求实现post方式上传图片文件功能示例

php调接口

php curl 忽略ssl 不是否等于ssl没有用