2015-02-25 19 views
6

Ecco riga di comando codice CURL: -bisogno di convertire riga di comando (Linux) CURL di PHP CURL con carico utile di richiesta di dati ("-d")

curl -X POST "http://{$HOST}/api/1/videos.json" \ 
-H "Content-type: application/json" \ 
-H "X-Reseller-Email: $RESELLER" \ 
-H "X-Reseller-Token: $TOKEN" \ 
-H "X-User-Email: $USER" \ 
-d '{"video":{ 
     "title": "My video from API", 
     "description": "Description from API", 
     "video_template_id": "16", 
     "track_id": "26", 
     "texts": [ 
      { 
       "layer": "VLN_txt_01", 
       "value": "My text 1" 
      } 
     ], 
     "images": [ 
      { 
       "layer": "VLN_icon_01", 
       "source": "icon", 
       "icon_id": "1593" 
      } 
     ] 
    }}' 

Per favore mi aiuti a convertire questo in PHP CURL chiamata . Inoltre, ho bisogno di questa chiamata con i metodi POST e PUT. L'ho fondato ma non riesco a convertire il carico utile dei dati in PHP.

Ho solo bisogno di sapere che come posso scrivere "-d" (dati) in PHP che ha lo stesso effetto della chiamata CURL della riga di comando in PHP.

+0

Questo è un duplicato di: [http://stackoverflow.com/questions/1939609/convert-command-line-curl-to-php-curl ? RQ = 1] [1] [1]: http://stackoverflow.com/questions/1939609/convert-command-line-curl-to-php-curl?rq=1 –

+0

No duplicato di quel "Damian Nikodem". Devo sapere che come posso convertire il carico utile della richiesta di dati ("-d") in PHP. Ho bisogno di inviare dati nella chiamata PHP CURL come se fosse l'argomento "-d" nella riga di comando CURL sopra. –

+0

ummm .... sì, se leggi la domanda e le sue risposte vedrai che CURLOPT_POSTFIELDS è impostato (che è l'equivoco di -d) –

risposta

1

È necessario utilizzare l'opzione CURLOPT_POSTFIELDS in combinazione con CURLOPT_HTTPHEADER. L'opzione CURLOPT_POSTFIELDS deve essere impostata su stringa JSON e CURLOPT_HTTPHEADER - array contenente tutte le intestazioni HTTP necessarie (incluso Content-type).

Quindi il codice dovrebbe essere così:

$json = '{"video":{ 
     "title": "My video from API", 
     "description": "Description from API", 
     "video_template_id": "16", 
     "track_id": "26", 
     "texts": [ 
      { 
       "layer": "VLN_txt_01", 
       "value": "My text 1" 
      } 
     ], 
     "images": [ 
      { 
       "layer": "VLN_icon_01", 
       "source": "icon", 
       "icon_id": "1593" 
      } 
     ] 
    }}'; 

$ch = curl_init(); 
curl_setopt_array($ch, array(
    CURLOPT_URL => "http://{$HOST}/api/1/videos.json", 
    CURLOPT_NOBODY => false, 
    CURLOPT_RETURNTRANSFER => true, 
    CURLOPT_POST => true, 
    CURLOPT_POSTFIELDS => $json, 
    CURLOPT_HTTPHEADER => array(
     "Content-type: application/json", 
     "X-Reseller-Email: $RESELLER", 
     "X-Reseller-Token: $TOKEN", 
     "X-User-Email: $USER", 
    ), 
)); 
$response = curl_exec($ch); 
if ($response && curl_getinfo($ch, CURLINFO_HTTP_CODE) == 200) 
    echo $response; 
Problemi correlati