2014-02-04 18 views
0

Мне нужно удалить открытую запись с помощью REST api, которую они уже предоставили. (только для информации, не нужно беспокоиться о том, что касается вопроса)Преобразование команды curl в код PHP

Мне нужно разработать простой PHP-код для DELETE некоторых записей через данный REST API. Я проверил с командной строкой curl, она работает нормально, но я не могу преобразовать ее в рабочий PHP-код.

работает локон команда:

curl --digest -X "DELETE" -u matterhorn_system_account:CHANGE_ME -H "X-Requested-Auth: Digest" -H "X-Opencast-Matterhorn-Authorization: true" url/search/xxxx 

не работает команда PHP:

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, 'url/search/xxxx'); 
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE"); 
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_DIGEST); 
curl_setopt($ch, CURLOPT_USERPWD, 'matterhorn_system_account:CHANGE_ME'); 
curl_setopt($ch, CURLOPT_HTTPHEADER, array("X-Requested-Auth: Digest")); 
curl_setopt($ch, CURLOPT_HTTPHEADER, array("X-Opencast-Matterhorn-Authorization: true")); 
$response = curl_exec($ch); 
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); 
curl_close($ch); 

результат $httpCode является 302, означает, что он не работает.

Любая идея, где я пошла не так.

Заранее спасибо

ответ

1

Вы должны объединить эти два, так что вы не перезаписывать себя:

curl_setopt($ch, CURLOPT_HTTPHEADER, array("X-Requested-Auth: Digest")); 
curl_setopt($ch, CURLOPT_HTTPHEADER, array("X-Opencast-Matterhorn-Authorization: true")); 

Так что должно быть

curl_setopt($ch, CURLOPT_HTTPHEADER, array("X-Requested-Auth: Digest", 
              "X-Opencast-Matterhorn-Authorization: true")); 

И это, вероятно, также будет способствовать следует переадресовывать с помощью

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
+1

Ты спасаешь мой день, его работы для меня. с и без 'CURLOPT_FOLLOWLOCATION', он работает –

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