我从未看到PUT/DELETE
请求是如何发送的。
如何在PHP中完成?
我知道如何使用curl发送GET / POST请求:
$ch = curl_init();
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookieFile);
curl_setopt($ch, CURLOPT_COOKIEFILE,$cookieFile);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_POST, 0);
curl_setopt($ch, CURLOPT_TIMEOUT, 4);
但如何PUT
/ DELETE
请求?
答案 0 :(得分:47)
DELETE
使用curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'DELETE');
对于PUT
使用curl_setopt($ch, CURLOPT_PUT, true);
不依赖于安装cURL的替代方法是将file_get_contents
与custom HTTP stream context一起使用。
$result = file_get_contents(
'http://example.com/submit.php',
false,
stream_context_create(array(
'http' => array(
'method' => 'DELETE'
)
))
);
查看这两篇关于使用PHP进行REST的文章
答案 1 :(得分:3)
一般来说,如果您想发送一些“非GET”请求,您通常会使用curl。
并且您将使用curl_setopt
函数来配置您要发送的请求;在大量可能的选项中,要更改请求方法,您至少会对这些选项感兴趣(引用):
CURLOPT_CUSTOMREQUEST
:在执行HTTP请求时使用的自定义请求方法,而不是“GET
”或“HEAD
”。这对于执行“DELETE
”或其他更加模糊的HTTP请求非常有用。CURLOPT_HTTPGET
:TRUE
将HTTP请求方法重置为GET
。CURLOPT_POST
:TRUE
执行常规HTTP POST
。CURLOPT_PUT
:TRUE
到HTTP PUT
一个文件。必须使用PUT
和CURLOPT_INFILE
设置CURLOPT_INFILESIZE
的文件。
当然,curl_setopt
不是你将使用的唯一功能;有关如何使用curl发送请求的示例,请参阅curl_exec
的文档页面。
(是的,这个例子很简单,发送GET
请求 - 但你应该可以从那里构建;-))