API-Tokens mit PHP abrufen
Das ist Ihr Ziel Erstellen Sie einen Wrapper für die API Ihres Unternehmens. Um sich bei der API zu authentifizieren, müssen Sie Token aus dem Antworttext von POST-Anfragen extrahieren. Bei Verwendung der beliebten Guzzle-Bibliothek stoßen Sie auf Schwierigkeiten beim Zugriff auf das Token innerhalb des Guzzle-Antwortobjekts.
Guzzle PSR-7-Implementierung
Guzzle hält sich an PSR-7 Standard, der Stream-Wrapper für Antworttexte verwendet. Diese Stream-Wrapper, die mithilfe temporärer PHP-Streams implementiert werden, speichern die Antworttextdaten.
Zugriff auf den Antworttext
Um den vollständigen Antworttext zu erhalten, können Sie das String-Casting von PHP nutzen Operator:
$contents = (string) $response->getBody();
Alternativ kann die getContents()-Methode des Streams verwendet werden verwendet:
$contents = $response->getBody()->getContents();
Der Hauptunterschied zwischen diesen Ansätzen liegt im Verhalten von getContents(), das den restlichen Inhalt erst nach dem ersten Aufruf zurückgibt. Nachfolgende Aufrufe geben eine leere Zeichenfolge zurück, es sei denn, die Stream-Position wird mit rewind() oder see() angepasst.
Beispielcode
'http://companysub.dev.myapi.com/']); $response = $client->post('api/v1/auth/', [ 'form_params' => [ 'username' => $user, 'password' => $password ] ]); // Convert response body to string and decode JSON $contents = (string) $response->getBody(); $data = json_decode($contents, true); // Extract token $token = $data['data']['token'];
Sobald das Token erhalten wurde , können Sie es für die API-Authentifizierung verwenden.
Das obige ist der detaillierte Inhalt vonWie greife ich auf den Antworttext in Guzzle HTTP v6 zu, um API-Tokens abzurufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!