手机
当前位置:查字典教程网 >编程开发 >php教程 >php使用curl获取https请求的方法
php使用curl获取https请求的方法
摘要:本文实例讲述了php使用curl获取https请求的方法。分享给大家供大家参考。具体分析如下:今日在做一个项目,需要curl获取第三方的AP...

本文实例讲述了php使用curl获取https请求的方法。分享给大家供大家参考。具体分析如下:

今日在做一个项目,需要curl获取第三方的API,对方的API是https方式的。

之前使用curl能获取http请求,但今天获取https请求时,出现了以下的错误提示:证书验证失败。

SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

解决方法为在curl请求时,加入:

复制代码 代码如下:curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, true); // 从证书中检查SSL加密算法是否存在

curl https请求代码

复制代码 代码如下:<?php

/** curl 获取 https 请求

* @param String $url 请求的url

* @param Array $data 要發送的數據

* @param Array $header 请求时发送的header

* @param int $timeout 超时时间,默认30s

*/

function curl_https($url, $data=array(), $header=array(), $timeout=30){

$ch = curl_init();

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, true); // 从证书中检查SSL加密算法是否存在

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_HTTPHEADER, $header);

curl_setopt($ch, CURLOPT_POST, true);

curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);

$response = curl_exec($ch);

if($error=curl_error($ch)){

die($error);

}

curl_close($ch);

return $response;

}

// 调用

$url = 'https://www.example.com/api/message.php';

$data = array('name'=>'fdipzone');

$header = array();

$response = curl_https($url, $data, $header, 5);

echo $response;

?>

希望本文所述对大家的php程序设计有所帮助。

【php使用curl获取https请求的方法】相关文章:

php生成图片缩略图的方法

PHP获取photoshop写入图片文字信息的方法

php curl 获取https请求的2种方法

php使用curl打开https网站的方法

php实现每天自动变换随机问候语的方法

php递归调用删除数组空值元素的方法

PHP生成plist数据的方法

两种php调用Java对象的方法

php转换颜色为其反色的方法

使用无限生命期Session的方法

精品推荐
分类导航