Lavoro Curl Lavoro I Terminale - Errore in PHP
Domanda
Ho guardato attraverso tutte le altre domande del terminale vs. PHP e non riuscivo a trovare una soluzione.
Sto lavorando con Box API e questo funziona per recuperare un elenco di file in una cartella:
curl https://api.box.com/2.0/folders/0 \
-H "Authorization: Bearer EdbmVAlajxC0VrkZoYA0wgPjSdNFQSeO"
.
Ma questo non funziona:
$postURL="https://api.box.com/2.0/folders/0";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $postURL);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Authorization: Bearer EdbmVAlajxC0VrkZoYA0wgPjSdNFQSeO'));
$data = curl_exec($ch);
curl_close($ch);
.
Cosa mi manca nella traduzione?
Soluzione
Sono stato in grado di riprodurre i tuoi risultati.Sembra che il tuo primo tentativo utilizzando il comando curl
utilizza il metodo GET
.Ho abilitato --trace-ascii
sulla tua richiesta di richiamo come tale:
curl --trace-ascii test.txt https://api.box.com/2.0/folders/0 \
-H "Authorization: Bearer EdbmVAlajxC0VrkZoYA0wgPjSdNFQSeO"
.
Il contenuto di Test.txt mostra che viene effettuata una richiesta GET
.
Lo script PHP utilizza il metodo POST
.Quando ho cambiato CURLOPT_POST
in false
, lo script PHP ha funzionato anche per me.Sembra che il server si aspetta una richiesta GET
invece di una richiesta POST
.