I never see how is PUT/DELETE
request sent.
How to do it in PHP?
I know how to send a GET/POST request with curl:
$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);
But how to do PUT
/DELETE
request?
For DELETE
use curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'DELETE');
For PUT
use curl_setopt($ch, CURLOPT_PUT, true);
An alternative that doesn't rely on cURL being installed would be to use file_get_contents
with a custom HTTP stream context.
$result = file_get_contents(
'http://example.com/submit.php',
false,
stream_context_create(array(
'http' => array(
'method' => 'DELETE'
)
))
);
Check out these two articles on doing REST with PHP
Generally speaking, if you want to send some "non-GET" request, you'll often work with curl.
And you'll use the curl_setopt
function to configure the request you're sending ; amongst the large amount of possible options, to change the request method, you'll be interested by at least those options (quoting) :
CURLOPT_CUSTOMREQUEST
: A custom request method to use instead of "GET
" or "HEAD
" when doing a HTTP request. This is useful for doing "DELETE
" or other, more obscure HTTP requests.CURLOPT_HTTPGET
: TRUE
to reset the HTTP request method to GET
.CURLOPT_POST
: TRUE
to do a regular HTTP POST
.CURLOPT_PUT
: TRUE
to HTTP PUT
a file. The file to PUT
must be set with CURLOPT_INFILE
and CURLOPT_INFILESIZE
.
Of course, curl_setopt
is not the only function you'll use ; see the documentation page of curl_exec
for an example of how to send a request with curl.
(Yes, that example is pretty simple, and sends a GET
request -- but you should be able to build from there ;-) )
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With