cURL funktioniert im Terminal – Fehler in PHP
Frage
Ich habe alle anderen Terminals durchgesehen.PHP-Fragen und konnte keine Lösung finden.
Ich arbeite mit der BOX-API und dies funktioniert, um eine Liste von Dateien in einem Ordner abzurufen:
curl https://api.box.com/2.0/folders/0 \
-H "Authorization: Bearer EdbmVAlajxC0VrkZoYA0wgPjSdNFQSeO"
Aber das funktioniert nicht:
$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);
Was fehlt mir in der Übersetzung?
Lösung
Ich konnte Ihre Ergebnisse reproduzieren.Es sieht aus wie Ihr erster Versuch mit dem curl
Der Befehl verwendet die GET
Methode.Ich habe aktiviert --trace-ascii
zu Ihrer Curl-Anfrage als solche:
curl --trace-ascii test.txt https://api.box.com/2.0/folders/0 \
-H "Authorization: Bearer EdbmVAlajxC0VrkZoYA0wgPjSdNFQSeO"
Der Inhalt von test.txt zeigt, dass a GET
Anfrage wird gestellt.
Ihr PHP-Skript verwendet das POST
Methode.Als ich mich veränderte CURLOPT_POST
Zu false
, das PHP-Skript hat auch bei mir funktioniert.Es sieht so aus, als ob der Server eine erwartet GET
Anfrage statt a POST
Anfrage.