好吧,我刚开始使用API而且我遇到了问题
这是工作代码的示例,它显示了网络的所有类别
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)'的非可空类型'System.Int32'的参数'Id'的空条目在'Secom.Net.WebApi.Controllers.ProductController'中。可选参数必须是引用类型,可以为空的类型,或者声明为可选参数。
所有具有变量的函数都会给出相同的错误,所以我认为有些错误,它会在函数外面给出同样的错误......
我不知道该怎么做......谁知道代码有什么问题?
我试过
curl_setopt($c, CURLOPT_POST,true);
curl_setopt($c, CURLOPT_POSTFIELDS, "Id=$Id");
但是“请求的资源不支持http方法'POST'”
答案 0 :(得分:0)
对我来说,看起来你的意思是在你的请求中指定一个ID变量,通常作为URL的一部分,并且这不会发生。
找到一种添加相关ID的方法,希望您不会再收到该错误。
编辑:我想我在你的代码中发现了问题。你的报价在错误的位置。
更改
curl_setopt($c, CURLOPT_URL, $this->apiUrl . "/api/Product/Get/$cod_prod");
要
curl_setopt($c, CURLOPT_URL, $this->apiUrl . "/api/Product/Get/" . $cod_prod);