我正在为此编写一个php,但在输出中出现错误消息
不允许使用方法。必须是以下之一:PUT 这是我的PHP代码
$h[]='Content-Type: application/json; charset=UTF-8';
$h[]='User-Agent: okhttp/3.9.1';
$postdata='{"my_link":"abcd1234"}';
$url=http://myurl.com
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_USERAGENT,$agent);
curl_setopt($ch,CURLOPT_VERBOSE,1);
curl_setopt($ch,CURLOPT_POST,TRUE);
curl_setopt($ch,CURLOPT_POSTFIELDS,$postdata);
curl_setopt($ch,CURLOPT_HTTPHEADER,$h);
curl_setopt($ch,CURLOPT_HEADER,1);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,TRUE);
curl_setopt($ch,CURLOPT_FOLLOWLOCATION,TRUE);
$output=curl_exec($ch);
echo "$output";
如何解决这个问题,伙计们帮我解决这个问题
答案 0 :(得分:0)
以示例方式进行尝试。请求已通过邮递员进行了测试:
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_PORT => "53632",
CURLOPT_URL => "http://myurl.com:53632/api/todo/1",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => " {'my_link': 'abcd1234' }",
CURLOPT_HTTPHEADER => array(
"Cache-Control: no-cache",
"Content-Type: application/json"
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err)
{
echo "cURL Error #:" . $err;
}
else
{
echo $response;
}
您可以使用自定义请求方法:
CURLOPT_CUSTOMREQUEST => "PUT"//GET,DELETE
http://php.net/manual/en/function.curl-setopt.php
一种自定义请求方法,用于在执行以下操作时代替“ GET”或“ HEAD” HTTP请求。这对于执行“删除”或其他更晦涩的操作很有用 HTTP请求。
注意:
请务必确保服务器支持自定义,然后再执行此操作 首先请求方法。