2015-04-18 13 views
12

Ich möchte die guzzle Bibliothek ausprobieren und bin durch ihre quickstart Tutorial, um http Anfragen an eine API zu folgen.Guzzle kehrt zurück cURL Fehler 3: <url> missgebildet

Aber es nicht zu funktionieren scheint, weil ich die folgende Fehlermeldung erhalten:

cURL error 3: <url> malformed 

Da ich noch nie mit cURL gearbeitet, ich weiß nicht einmal, wie man diese Fehlermeldung zu reagieren. Hier ist mein Code mit der Bitte, ich mache:

$client = new Client(); 
    $client->get('/', ['verify' => true]); 

    $response = $client->get('https://api.github.com/'); 

    dd($response); 

Ich bin mit dem Laravel 5-Framework und den Aufruf der Index-Methode in meinem Homecontroller. Verwende auch WAMP.

Ich würde jede Hilfe und Anregung schätzen, weil ich Guzzle ausprobieren möchte. Hier

ist ein Bild von der Fehlermeldung erhalte ich: (! dies nicht tun)

Laravel 5 Error Message

+0

Wenn meine Antwort unten hilfreich war, kannst du sie akzeptieren :) –

+0

@loveAndHappiness hast du irgendeine Lösung bekommen, um dieses Problem zu lösen? Ich habe dasselbe selbe Problem in meinem Code :(bitte helfen Sie mir –

+0

Ich hatte nicht die Zeit, um irgendeine Lösung zu diesem Projekt noch zu implementieren, so weiß ich nicht, ob die gelieferte Lösung das Problem gelöst. – LoveAndHappiness

Antwort

5

Wenn Sie Überprüfung deaktivieren möchten:

$response = $client->get('https://api.github.com/', ['verify' => false]); 

Statt Wenn Sie die Überprüfung vollständig deaktivieren, kann dies wahrscheinlich durch Bereitstellung einer geeigneten CA-Bundle-Datei behoben werden. Siehe verify in der Guzzle-Dokumentation.

$client->setDefaultOption(
    'verify', 
    'C:\Program Files (x86)\Git\bin\curl-ca-bundle.crt' 
); 
+0

Eigentlich ist das nicht das Problem, weil ohne diese Zeile, bekomme ich einen anderen Fehler "cURL Fehler 60: SSL-Zertifikat Problem: nicht in der Lage, lokale Aussteller Zertifikat zu erhalten", und die puzzle faq sagt, dass diese Zeile da sein muss. – LoveAndHappiness

+1

@LoveAndHappiness siehe aktualisierte Antwort :) –

3

Sie sollten nicht diesen Ruf haben:

$client->get('/', ['verify' => true]); 

Das heißt, was den Fehler zu werfen. Die dritte Zeile ist in Ordnung.

Der Fehler bedeutet, was es sagt. Die URL ist falsch formatiert. In meinem Fall habe ich bei der Initialisierung des Clients base_url statt base_uri verwendet. Wenn Sie also auf diesen Fehler stoßen, vergewissern Sie sich, dass Ihre URL richtig angegeben ist.

+0

Was ist das Problem mit Zeile 2 und warum sollte OP es nicht haben? –

+1

In Zeile eins bei der Initialisierung des Fressclients hatte er keine URL eingegeben. Also in Zeile zwei, wenn er '/' verwendet, gibt es keine Basis-URL und es wird ein Fehler geworfen [ungültige URL] – Teliov

Verwandte Themen