1.发送post请求php代码:
<?php
$url = 'https://www.yiichina.com/extension/1009';
$data = ['fun'=>'post','time'=>'20191231'];
/**
* @param $data array post提交的参数
* @param $url string post请求的链接
*/
function httpsPost($url, $data)
{
if(is_array($data)){
$params = http_build_query($data);
}else{
$params = (string)$data;
}
$curl = curl_init();
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($curl, CURLOPT_TIMEOUT, 2);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true); //验证证书的真实性,https需设置
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2); //指定要验证的内容:2:检查服务器证书
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $params);
curl_setopt($curl, CURLOPT_URL,$url);
$res = curl_exec($curl);
//******************************curl_exec()执行后打印错误信息
var_dump(curl_error($curl)); //打印最近一次cURL操作的错误信息
//******************************
curl_close($curl);
return $res;
}
print_r(httpsPost($url,$data));
错误提示1:string(63) "SSL certificate problem: unable to get local issuer certificate"
解决:
下载证书:点击下载证书
配置:打开php.ini
添加配置://curl.cainfo 写实际的证书文件路径
[SSL]
curl.cainfo = “D:\soft\phpstudy\php\cacert.pem”
openssl.cafile = “${curl.cainfo}”
错误提示2:string(21) “name lookup timed out”
环境docker中的linux centos6.x 容器
报错信息表示dns 域名查询超时
解决:
vim /etc/resolv.conf
nameserver 改为8.8.8.8