2013-07-31 3 views
2

Можно ли запросить cURL с помощью метода PUT, используя только URL? Вот URL я хотел бы иметь возможность вызвать с помощью Curl с помощью метода PUT:
$url = https://url.net/card/activate.xml?card_id=1234567890&application_key=123123&accesskey=abcdefcURL с методом PUT

Я был в состоянии сделать его работу с помощью REST консоли (Chrome Extension), но не с помощью Curl. Я пробовал использовать curl_setopt с CURLOPT_PUT, CURLOPT_INFILE и CURLOPT_INFILESIZE, но я получал пустую страницу, никакого ответа вообще.

Это заголовки и локон варианты я в настоящее время:

$header[] = 'Authorization: Basic abc123'; 
$header[] = 'Accept: text/xml'; 

curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'PUT'); 
curl_setopt($curl, CURLOPT_URL, $url); 
curl_setopt($curl, CURLOPT_HTTPHEADER, $header); 
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); 
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 

$output = curl_exec($soap_do); 

В настоящее время, с этими настройками, я получаю 411 Length Required ошибку. Можно ли заставить его работать так, или я пытаюсь настроить что-то, что никогда не сработает?

+2

Возможно, 'curl_setopt ($ curl, CURLOPT_HTTPHEADER, array ('Content-length: 0'));'? (или, вернее, добавить к существующему заголовку) –

+0

Я добавил Content-Length: 0 в массив заголовков, и он сработал. – oliboon

ответ

3

HTTP-411 Ошибка

Веб-сервер (работает веб-сайт) считает, что поток HTTP данные, передаваемые клиентом (например, ваш веб-браузер или наш CheckUpDown робот) должен включать в себя «Content-Length ' Спецификация. Обычно это используется только для HTTP-методов, которые приводят к размещению данных на веб-сервере, а не к извлечению данных из него.

Вам необходимо установить Content Length ваших данных

$header[] = 'Content-length: '.strlen($put_data); 

ИЛИ Если у вас нет каких-либо данных, просто положить 0 там.

+0

Он работал, установив Content-Length: 0 в заголовках. Я думал, что Content-Length был использован в запросе и должен был быть длиной отправленных данных, иначе это не сработало. – oliboon

Смежные вопросы