PHP cURL HTTP PUT

Я пытаюсь создать запрос HTTP PUT с помощью cURL, и я не могу заставить его работать. Я читал много учебников, но никто из них не работал. Вот мой текущий код:

$filedata = array('metadata' => $rdfxml); $ch = curl_init($url); $header = "Content-Type: multipart/form-data; boundary='123456f'"; curl_setopt($ch, CURLOPT_VERBOSE, 1); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HTTPHEADER, array($header)); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($filedata)); $returned = curl_exec($ch); if (curl_error($ch)) { print curl_error($ch); } else { print 'ret: ' .$returned; } 

Я также пытался использовать PHP PEAR, но получил тот же результат. Проблема заключается в том, что в репозитории указано, что метаданные не установлены. Мне действительно нужна помощь! Благодаря!

Просто делал это сам сегодня … вот код, который я работаю для меня …

 $data = array("a" => $a); $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT"); curl_setopt($ch, CURLOPT_POSTFIELDS,http_build_query($data)); $response = curl_exec($ch); if (!$response) { return false; } 

src: http://www.lornajane.net/posts/2009/putting-data-fields-with-php-curl

Используя Postman для Chrome, выбирая CODE, вы получаете это … И работает

 <?php $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => "https://blablabla.com/comorl", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "PUT", CURLOPT_POSTFIELDS => "{\n \"customer\" : \"con\",\n \"customerID\" : \"5108\",\n \"customerEmail\" : \"jordi@correo.es\",\n \"Phone\" : \"34600000000\",\n \"Active\" : false,\n \"AudioWelcome\" : \"https://audio.com/welcome-defecto-es.mp3\"\n\n}", CURLOPT_HTTPHEADER => array( "cache-control: no-cache", "content-type: application/json", "x-api-key: whateveriyouneedinyourheader" ), )); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); if ($err) { echo "cURL Error #:" . $err; } else { echo $response; } ?>