我正在使用curl_exec
从PHP Web应用程序中调用API,它使我注意到“ {undefined index”似乎curl_exec
没有发送参数之一,我尝试从Postaman会发出相同的通知,但是当我使用Shell_exec
调用相同的API时,它将给出正确的响应。
由于我无法在生产服务器中使用Shell_exec
,所以谁能帮助我这两个命令之间的区别是什么?
Shell_exce代码:
$cmd = "curl 'https://Domain/API/test' --request POST -- include --header 'Content-Type: application/json' --user test:test";
$output = shell_exec($cmd);
Curl_exec:
$data = array("user" => "test", "password" => "test");
$data_string = json_encode($data);
$ch = curl_init('https://Domain/API/test');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: ' . strlen($data_string))
);
$result = curl_exec($ch);
$response = json_decode($result);
curl_exec
和Postman发出相同的通知,然后json_decode
无法解码响应。