【发布时间】:2015-12-17 07:58:55
【问题描述】:
我尝试在 php 中使用 Curl 访问 https 服务器的 api。我不知道为什么我无法访问它并且我得到 null 作为响应。
我的基本代码是这样的,
<?php
$url = "https://my_website";
$data = array(
'groupName' => 'Test',
'units' => 1,
'principalEmail' => 'todd.bailey+onboard@rentmoola.com',
'principalFirstName' => 'Todd',
'principalLastName' => 'Bailey',
'principalPhone' => 1212,
'principalSSN' => 2121,
);
$jsonStringPOST = json_encode($data);
$login = array('username'=>'some_user_name','password'=>'some_password');
$headers = array('Accept: application/json','Content-Type: application/json');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); //for solving certificate issue
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_USERPWD, $login['username'] . ':' . $login['password']);
curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonStringPOST);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$resultPOST = curl_exec($ch);
if($resultPOST === false)
{
var_dump('Curl error: ' . curl_error($ch));
}
?>
我得到的错误是这样的:
'Curl error: error: 1408D13A:SSL routines: SSL3_GET_KEY_EXCHANGE:unable to find ecdh parameters.
好吧,当我尝试通过 chrome 的 POSTMAN 应用程序将数据发布到服务器时,我能够得到响应。 我无法在 php 中使用 CURL 找到此问题的解决方案。 任何建议或答案都将是非常可观的。
谢谢。
【问题讨论】:
-
您是否尝试过使用
cacert.pem发出 curl 请求?另外,尝试添加用户代理,也可能添加引用者 -
我对实施 cacert.pem 没有任何想法。如果您能进一步向我说明如何实现它,那将是可观的。
标签: php ssl curl ssl-certificate cakephp-2.0