我试图在php中使用Curl来点击https服务器的api。我不知道为什么我无法访问它而我得到null作为回应。
我的基本代码就像,
$(window).on("resize", function () {
var $grid = $("#gridID"),
newWidth = $grid.closest(".ui-jqgrid").parent().width();
$grid.jqGrid("setGridWidth", newWidth, true);
}).resize(); // <----triggers the resize on dom ready.
我得到的错误就像:
<?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));
}
?>
嗯,我试图通过Chrome的POSTMAN应用程序将数据发布到服务器时得到响应。 我无法在php中使用CURL找到解决此问题的方法。 任何建议或答案都会非常明显。
谢谢。
答案 0 :(得分:1)
您可以download cacert.pem from here - 保存到目录根目录之外的站点。
在curl请求中,您可以执行以下操作:
$cacert=realpath('/path/to/cacert.pem');
curl_setopt( $ch, CURLOPT_CAINFO, $cacert );
curl_setopt( $ch, CURLOPT_SSL_VERIFYHOST, 1 );
curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, false );
curl_setopt( $ch, CURLOPT_USERAGENT, 'Mozilla-da-gorilla' );
curl_setopt( $ch, CURLOPT_AUTOREFERER, true );