curlopt_httpheader body php rest curl put http-put

body - PHP cURL HTTP PUT



php curl put json (3)

En un método POST, puede poner una matriz. Sin embargo, en un método PUT, debe usar http_build_query para construir los parámetros de esta manera:

curl_setopt( $ch, CURLOPT_POSTFIELDS, http_build_query( $postArr ) );

Estoy intentando crear una solicitud HTTP PUT con cURL y no puedo hacer que funcione. He leído muchos tutoriales, pero ninguno de ellos realmente funcionó. Aquí está mi código actual:

$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; }

También intenté usar PHP PEAR pero obtuve el mismo resultado. El problema es que el repositorio dice que no se han establecido metadatos. Realmente necesito ayuda! ¡Gracias!


Solo he estado haciendo eso yo mismo hoy ... aquí está el código que tengo trabajando para mí ...

$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


Usando Postman para Chrome, seleccionando CÓDIGO obtienes esto ... Y funciona

<?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/" : /"[email protected]/",/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; } ?>