Ich verwende eine WordPress-REST-API, um den Inhalt einer Seite zu erhalten. Die URL, die ich verwende, ist:
https://sitename.org/wp-json/wp/v2/pages/4322
- So zeigen Sie die übergeordnete Kategorie mit dem untergeordneten Element der ersten Ebene in der REST-API an
- WP REST API V2 - Sub-Seite mit vollem Slug (URL / Pfad) abrufen
- Wie umgehen Sie die WP REST API pro Seite ohne Seitenumbruch?
- Erstellen Sie einen neuen Benutzer mithilfe der WP-REST-API und deklarieren Sie das Metaobjekt
- Holen Sie sich mehr als 10 Beiträge in einer bestimmten Kategorie mit der WordPress API
- So ziehen Sie ALLE Posts, Kategorien oder Tags in der WordPress-REST-API
Wenn ich diese URL im Browser öffne, erhalte ich eine gültige Antwort.
Aber wenn ich versuche, dieselbe URL über cURL zu verwenden, bekomme ich:
konnte keine Verbindung zum Host herstellen
Der Code, den ich benutze, ist dies:
$page_id = 4322; $wp_api_url = "https://sitename.org/wp-json/wp/v2/pages/".$page_id; $ch = curl_init(); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_URL, $wp_api_url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_TIMEOUT, 10); $response = curl_exec($ch); if (FALSE === $response) { echo curl_error($ch); // <---- failing here } else { echo '
'; print_r(json_decode($response, true)); echo ''; } curl_close($ch);
Was die Frage aufwirft:
- Warum funktioniert es dann über einen Browser?
- Muss ich beim Aufruf einer API über cURL eine Art Authentifizierung verwenden?
Solutions Collecting From Web of "REST API funktioniert im Browser und über AJAX, schlägt aber über cURL fehl"
- Erstellen Sie Post mit REST API in PHP mit file_get_contents
- Wie verwende ich Wordpress Rest API mit Angularjs 4
- Erstellen Sie mehrere Posts gleichzeitig mit der WP-REST-API
- Deaktivieren Sie den externen Zugriff auf den REST-API-Endpunkt
- WP REST API - Wie ändert man den HTTP Response Status Code?
- Enthalten Sie einen benutzerdefinierten Post-Meta-Wert in abgerufenem JSON
- Wie bekomme ich die angehängte Galerie in der Rest-API?
- Erstellen eines Beitrags mit der REST-API, curl und oauth, der den 401-Fehler zurückgibt
Sie können den folgenden Code verwenden und sollten funktionieren, wenn nicht, sollten wir die Serverkonfiguration sehen, um zu sehen, warum. Außerdem können wir den curl_error auf Hinweise prüfen.
$curl = curl_init(); $page_id = 4322; $wp_api_url = "https://sitename.org/wp-json/wp/v2/pages/".$page_id; curl_setopt_array($curl, array( CURLOPT_URL => $wp_api_url, CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "GET", )); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl);