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?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top