curl_exec和Shell_exec之间的区别

时间:2018-11-04 09:18:01

标签: php curl shell-exec jsondecoder

我正在使用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无法解码响应。

0 个答案:

没有答案