如何从PHP中的https客户端进行curl post请求以进行restfull api调用

时间:2015-05-06 06:06:15

标签: php curl

我正在做一个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);

非常感谢任何帮助..

1 个答案:

答案 0 :(得分:0)

http and https是客户端和服务器相互通信的协议 - 两者都是http或https - 它不能是http-https组合

如果服务器同时支持http和https,它将根据URL(http://或https://)自动选择正确的

因此,如果您的网址包含https而不是

CURLOPT_SSL_VERIFYPEER,CURLOPT_SSL_VERIFYHOST. 

如果不是,则不需要或将被curl忽略