2012-10-22 17 views
5

Ho bisogno di fare una richiesta di arricciatura, ho questa riga "arricciare -X POST -H" Content-Type: application/json " -d "e hanno bisogno di" tradurre "in PHP curl. Il problema è che non so cosa significano "-X", "-H" e "-d".curl -X POST -H 'Content-Type: application/json' -d a PHP

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
     'Accept: application/json', 
     'Content-Type: application/json', 
     'Content-Length: '. strlen($itemJson)) 
    ); 

ho provato qualcosa di simile a un colpo di testa ($itemJson è una stringa JSON), ma ho avuto l'errore 400.

penso che sto facendo la richiesta in un modo sbagliato. Qualcuno può aiutarmi?

+2

-X indica il tipo di metodo. -H significa intestazioni e -d significa che i dati tat saranno inviati insieme alla richiesta. – Layke

+0

Grazie! Penso che la richiesta sia giusta, controllerò i dati. – fred00

+0

Per convertire il comando Curl in PHP https://incarnate.github.io/curl-to-php/ – Sonu

risposta

8

si può provare, come di seguito

$data = array("name" => "Hagrid", "age" => "36");                  
$data_string = json_encode($data);                     

$ch = curl_init('http://somedomain.com/test.php');                  
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");                  
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);                 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);                  
curl_setopt($ch, CURLOPT_HTTPHEADER, array(                   
    'Content-Type: application/json',                     
    'Content-Length: ' . strlen($data_string))                  
);                             

$result = curl_exec($ch); 
+0

No ... Ho ancora errore 400. – fred00

+0

puoi incollare il codice aggiornato? – GBD

+0

Grazie! .. Ecco, stavo mandando il POST a un vecchio URL. – fred00