通过PHP cURL 500调用REST API服务器错误

通过PHP cURL 500调用REST API服务器错误,php,rest,api,Php,Rest,Api,我有以下代码: function callAPI($method, $url, $data, $auth){ $curl = curl_init(); switch ($method){ case "POST": curl_setopt($curl, CURLOPT_POST, 1); if ($data) curl_setopt($curl, CURLOPT_POSTFIELDS, $data);

我有以下代码:

function callAPI($method, $url, $data, $auth){
   $curl = curl_init();

   switch ($method){
      case "POST":
         curl_setopt($curl, CURLOPT_POST, 1);
         if ($data)
            curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
         break;
      case "PUT":
         curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "PUT");
         if ($data)
            curl_setopt($curl, CURLOPT_POSTFIELDS, $data);                              
         break;
      default:
         if ($data)
            $url = sprintf("%s?%s", $url, http_build_query($data));
   }

   // OPTIONS:
   curl_setopt($curl, CURLOPT_URL, $url);
   curl_setopt($curl, CURLOPT_HTTPHEADER, array(
      'Authorization: Basic '.$auth,
      'Content-Type: application/json',
   ));
   curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
   curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);

   // EXECUTE:
   $result = curl_exec($curl);
   if(!$result){die("Connection Failure");}
   curl_close($curl);
   return $result;
}

    $data = ""; // some json data
$UserID = 'x';
$Password = 'y!';
$auth = base64_encode($UserID.':'.$Password);

    callAPI('POST','https://collaudo-wsrest.sda.it/SPEDIZIONE-WS-WEB/rest/spedizioneService',$data, $auth);
执行时,它返回“连接错误”(因为我设置了它),但具体来说是500服务器错误。
事实是,如果我在这里运行我的呼叫:它工作得非常好。我的代码出了什么问题?

500错误是一条通用错误消息,几乎涵盖了PHP脚本可能出现的每一个错误。检查服务器错误日志以了解确切的错误消息。方法调用有4个参数,但函数中只定义了3个参数。您试图传入
$auth
,但函数不接受它。。。尽管您试图在函数内部使用它。如果此脚本(正如aynber提到的错误一样)在一台主机上运行,而不是在另一台主机上运行。。。这通常意味着您使用的是php版本不支持/不支持的内容(比如curl不是不会运行脚本的主机上php安装的一部分)。查看错误日志有助于消除此类问题;)@令人难以置信的是,我不知道他们在网站上使用的脚本。但是他们的电话是正确的,我的不是出于某种原因。当你看到错误时,以及当你没有看到错误时,你能在你的问题中重新措辞吗。你说它工作得很好,但却不。。。但是现在你说其他人的剧本行得通,而你的剧本不行?首先修复上面aynber指出的错误。