我正在做一个curl post请求从https客户端调用restfull api。它每次都失败了。但是,如果客户端是http并且服务器是https,我可以通过设置另外2个参数CURLOPT_SSL_VERIFYPEER,CURLOPT_SSL_VERIFYHOST来成功进行curl post请求。
但如果客户端是https,它总是会失败。 代码如下:
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_URL =>'https://103.253.36.41/bankAPI/recipient.php',
CURLOPT_USERAGENT => 'Codular Sample cURL Request',
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_SSL_VERIFYHOST =>0,
CURLOPT_POST => 1,
CURLOPT_POSTFIELDS => array(
recipient_id =>'1172',
bankifsc => '',
accountno => '',
branch_name => '',
branch_code => '',
method=>'find'
)
));$curl_response = curl_exec($curl);
非常感谢任何帮助..
答案 0 :(得分:0)
http and https
是客户端和服务器相互通信的协议 - 两者都是http或https - 它不能是http-https组合
如果服务器同时支持http和https,它将根据URL(http://或https://)自动选择正确的
因此,如果您的网址包含https而不是
CURLOPT_SSL_VERIFYPEER,CURLOPT_SSL_VERIFYHOST.
如果不是,则不需要或将被curl忽略