&引用;参数字典包含参数“的空条目”;php api

&引用;参数字典包含参数“的空条目”;php api,php,api,function,curl,Php,Api,Function,Curl,嗯,我刚开始使用API,我遇到了一个问题 这是一个工作代码的示例,它显示了web的所有类别 function list_categories(){ $c = curl_init(); curl_setopt($c, CURLOPT_RETURNTRANSFER, 1); curl_setopt($c, CURLOPT_HTTPHEADER, $this->xmlHeader); curl_setopt($c, CURLOPT_URL, $this-

嗯,我刚开始使用API,我遇到了一个问题

这是一个工作代码的示例,它显示了web的所有类别

function list_categories(){

    $c = curl_init(); 
    curl_setopt($c, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($c, CURLOPT_HTTPHEADER, $this->xmlHeader);


    curl_setopt($c, CURLOPT_URL, $this->apiUrl . "/api/Categories/Get"); 
    curl_setopt($c, CURLOPT_POSTFIELDS, null); 
    curl_setopt($c, CURLOPT_CUSTOMREQUEST, 'GET'); 
    $contentResult = curl_exec($c); 
    curl_close($c); 
        echo $contentResult;    
}
这是我尝试使用单一产品的时候

function get_product($cod_prod){
            $c = curl_init(); 
    curl_setopt($c, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($c, CURLOPT_HTTPHEADER, $this->xmlHeader);

    curl_setopt($c, CURLOPT_URL, $this->apiUrl . "/api/Product/Get/$cod_prod"); 
    curl_setopt($c, CURLOPT_POSTFIELDS, null); 
    curl_setopt($c, CURLOPT_CUSTOMREQUEST, 'GET'); 
    $contentResult = curl_exec($c);

    curl_close($c); 

    echo $contentResult;
}
使用第二个代码,我得到以下错误:

该请求无效。参数字典包含“Secom.Net.WebApi.Models.ProductView Get(Int32)”中方法“Secom.Net.WebApi.Controllers.ProductController”的不可为空类型“System.Int32”的参数“Id”的空条目。可选参数必须是引用类型、可为空类型或声明为可选参数。

所有有一个变量的函数都会给出相同的错误,所以我认为这是错误的,它在函数外给出了相同的错误

我不知道该怎么办。。。有人知道代码出了什么问题吗


我试过了

curl_setopt($c, CURLOPT_POST,true);
    curl_setopt($c, CURLOPT_POSTFIELDS, "Id=$Id");

但是“请求的资源不支持http方法‘POST’”

对我来说,看起来您应该在请求中指定一个ID变量,通常作为URL的一部分,而这不会发生

找到一种添加相关ID的方法,希望您不再出现该错误

编辑:我想我已经在你的代码中发现了问题。你的报价放错地方了

改变

curl_setopt($c, CURLOPT_URL, $this->apiUrl . "/api/Product/Get/$cod_prod");


我尝试了/api/Product/Get?id=$cod_prod,但它显示了相同的错误,可能我遗漏了something@user3047498如果所有其他操作都失败,请尝试直接在浏览器中键入所需的URL,并确保收到响应。它可能只是一个数字id,比如/api/Product/Get/1,也可能区分大小写,因此请确保Product和Get的大写字母是必需的
curl_setopt($c, CURLOPT_URL, $this->apiUrl . "/api/Product/Get/" . $cod_prod);