Maison >développement back-end >tutoriel php >Comment accéder au corps de réponse dans Guzzle HTTP v6 pour récupérer des jetons API ?

Comment accéder au corps de réponse dans Guzzle HTTP v6 pour récupérer des jetons API ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-02 03:17:13759parcourir

How Do I Access the Response Body in Guzzle HTTP v6 to Retrieve API Tokens?

Comment Guzzle HTTP permet d'accéder au corps de réponse dans la version 6

Récupération de jetons API avec PHP

Vous souhaitez créez un wrapper pour l'API de votre entreprise. Pour vous authentifier auprès de l'API, vous devez extraire les jetons du corps de réponse des requêtes POST. En utilisant la populaire bibliothèque Guzzle, vous rencontrez des difficultés pour accéder au jeton dans l'objet de réponse Guzzle.

Implémentation de Guzzle PSR-7

Guzzle adhère au PSR-7 standard, qui utilise des wrappers de flux pour les corps de réponse. Ces wrappers de flux, implémentés à l'aide de flux temporaires PHP, stockent les données du corps de la réponse.

Accès au corps de la réponse

Pour obtenir le corps de la réponse complet, vous pouvez utiliser le casting de chaînes de PHP opérateur :

$contents = (string) $response->getBody();

Alternativement, la méthode getContents() du flux peut être used:

$contents = $response->getBody()->getContents();

La principale différence entre ces approches réside dans le comportement de getContents(), qui ne renvoie le contenu restant qu'après le premier appel. Les appels suivants renverront une chaîne vide à moins que la position du flux ne soit ajustée à l'aide de rewind() ou seek().

Exemple de code

 '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'];

Une fois le jeton obtenu , vous pouvez procéder à son utilisation pour l'authentification API.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn