2017-07-20 1 views
0

Ich verwende Guzzle 6, um Daten von Ruckus public API abzurufen, aber hält die folgende FehlerVerwenden Sie Guzzle 6, um öffentliche Ruckus-API anzufordern, aber Argument 3 an GuzzleHttp Client :: request() muss vom Typ Array sein, boolean

Argument 3 bestanden GuzzleHttp \ Client :: Anfrage() bekommen muss der Typ Array von, boolean gegeben

ich gegoogelt habe und suchte nach ähnlichen Fragen. Das einzige, was funktioniert, ist die zweite Antwort in dieser post, welche die Version auf 5 herunterlädt. Andere Teammitglieder, die andere Funktionen ausführen, benutzen jedoch Guzzle 6, so dass ein Downgrade auf Version 5 ebenfalls ein Problem für das Team sein könnte.

Da ich keine Pakete wie in diesem Beitrag verwende, glaube ich nicht, dass die Guzzle-Version der Schuldige hier sein könnte, also kann mir jemand eine Idee geben, was ich falsch gemacht habe? Vielen Dank.

Übrigens benutze ich Laravel Command. Der Code in der Griff-Funktion ist wie folgt:

use Illuminate\Console\Command; 
use GuzzleHttp\Exception\GuzzleException; 
use GuzzleHttp\Client; 

/** 
* Execute the console command. 
* 
* @return mixed 
*/ 
public function handle() 
{ 
    $client = new Client(); 
    //to bypass local ssl certificate issuer 
    $client->setDefaultOption('verify', false); 
    $res = $client->request(
     'POST', 
     $this->baseUrl . '/v4_0/session', 
     [ 
      "headers" => [ 
       "Content-Type" => "application/json;charset=UTF-8" 
      ], 
      "json" => [ 
       "username" => "admin", 
       "password" => "admin" 
      ] 
     ] 
    ); 

    $headers = explode(';', $res->getHeader('Set-Cookie')); 
    return current($headers); 
} 

Die Ruckus öffentliche API: http://docs.ruckuswireless.com/vscg-enterprise/vsz-e-public-api-reference-guide-3-5.html#header-overview. Ich verwende Version 4, aber selbst wenn ich Version 5 verwende, bekomme ich immer noch den gleichen Fehler.

+0

können Sie versuchen, stattdessen den '$ client-> post()' zu verwenden und zu sehen, ob es ein anderes Ergebnis zeigt? –

+0

@OmisakinOluwatobi Ja, das habe ich auch versucht. Immer noch den gleichen Fehler. –

+0

hast du php-curl installiert? –

Antwort

0

Am Ende habe ich ein Problem auf dem GitHub-Konto von Guzzle protokolliert. Es stellt sich heraus, dass $client->setDefaultOption('verify', false); nicht mehr ein unterstützter Funktionsaufruf ist. Stattdessen sollte es wie im folgenden anhand der dritten params übergeben werden:

$res = $client->request(
    'POST', 
    $this->baseUrl . '/v4_0/session', 
    [ 
     "verify" => false, 
     "headers" => [ 
      "Content-Type" => "application/json;charset=UTF-8" 
     ], 
     "json" => [ 
      "username" => "admin", 
      "password" => "admin" 
     ] 
    ] 
); 

Sie für alle danken, die Vorschläge gegeben haben und versucht zu helfen.

Verwandte Themen