更新网站数据的PUT请求


PUT request to update data in a website

我想使用Curl PUT请求更新网站中的价格字段。但是我不能找出我的代码中的错误。如果你能找到错误就太有帮助了。下面是我的代码。

$api_request_url = 'http://example.com/variants/SOMETHING';

$method_name = 'PUT';
$header = array(
"Accept: application/json, text/plain",
"Content-Type: application/json;charset=utf-8",
"Connection: keep-alive",
"Accept-Language: en-US,en;q=0.5",
"Accept-Encoding: gzip, deflate",
"Content-Length: 82",
"Referer: http://seller.example.com/catalog",
"Cache-Control: max-age=0, private, must-revalidate"
);
$payload = array(
//"variant:  'YEL510044' , 6",//
'price' => '600',
//"original_price: 999"//
);
$data_string = json_encode($payload);
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT');
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);

curl_setopt($ch, CURLOPT_HTTPHEADER, $header);

curl_setopt($ch, CURLOPT_URL, $api_request_url);

curl_setopt($ch, CURLOPT_HEADER, TRUE);

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

$api_response = curl_exec($ch);

$api_response_info = curl_getinfo($ch);
echo "$api_response";
curl_close($ch);

您尝试更改代码:

$data_string = json_encode($payload);

$data_string = http_build_query($payload);

你应该试试:

curl_setopt($ch, CURLOPT_PUT, true);

代替

curl_setopt (ch美元,CURLOPT_CUSTOMREQUEST,"放");