我从来不知道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
请求呢?
发布于 2010-01-28 18:09:45
对于DELETE
,请使用curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'DELETE');
对于PUT
,请使用curl_setopt($ch, CURLOPT_PUT, true);
另一种不依赖于安装cURL的方法是使用带有custom HTTP stream context的file_get_contents
。
$result = file_get_contents(
'http://example.com/submit.php',
false,
stream_context_create(array(
'http' => array(
'method' => 'DELETE'
)
))
);
查看这两篇关于使用PHP进行REST的文章
发布于 2010-01-28 19:08:59
一般来说,如果你想发送一些“非GET”请求,你通常会使用curl。
您将使用curl_setopt
函数来配置要发送的请求;在大量可能的选项中,为了更改请求方法,您至少会对这些选项感兴趣(引用):
CURLOPT_CUSTOMREQUEST
:一个自定义的请求方法,用来代替"GET
“或"HEAD
”进行请求。这对于执行“HTTP”或其他更模糊的HTTP requests.CURLOPT_HTTPGET
:TRUE
将请求方法重置为GET
.CURLOPT_POST
:TRUE
来执行常规的HTTP POST
.CURLOPT_PUT
:TRUE
to HTTP PUT
a file非常有用。必须使用CURLOPT_INFILE
和CURLOPT_INFILESIZE
将文件设置为PUT
。当然,curl_setopt
不是您要使用的惟一函数;有关如何使用curl发送请求的示例,请参阅curl_exec
的文档页面。
(是的,这个示例非常简单,它发送了一个GET
请求--但是您应该能够从那里构建;-)
https://stackoverflow.com/questions/2153650
复制相似问题