Как запустить запрос GET / POST / PUT / DELETE и тип запроса суждения в PHP?

Я никогда не вижу, как отправляется запрос PUT/DELETE .

Как это сделать в PHP?

Я знаю, как отправить запрос GET / POST с помощью 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); 

Но как сделать запрос PUT / DELETE ?

Для DELETE используйте curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'DELETE');
Для использования PUT curl_setopt($ch, CURLOPT_PUT, true);

Альтернативой, которая не полагается на установленную cURL, было бы использование file_get_contents с настраиваемым контекстом HTTP-потока .

 $result = file_get_contents( 'http://example.com/submit.php', false, stream_context_create(array( 'http' => array( 'method' => 'DELETE' ) )) ); 

Ознакомьтесь с этими двумя статьями о выполнении REST с PHP

Вообще говоря, если вы хотите отправить запрос «не-GET», вы часто будете работать с завитком .

И вы будете использовать функцию curl_setopt для настройки отправляемого запроса; среди большого количества возможных вариантов, чтобы изменить метод запроса, вас будут интересовать по крайней мере эти параметры (цитирование) :

  • CURLOPT_CUSTOMREQUEST : пользовательский метод запроса для использования вместо « GET » или « HEAD » при выполнении HTTP-запроса. Это полезно для выполнения « 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_exec для примера того, как отправить запрос с помощью curl.

(Да, этот пример довольно прост и отправляет запрос GET – но вы должны иметь возможность строить оттуда ;-))