Maison >développement back-end >tutoriel php >Bibliothèque Guzzle en PHP8.0

Bibliothèque Guzzle en PHP8.0

WBOY
WBOYoriginal
2023-05-14 08:57:102371parcourir

Récemment, les développeurs PHP ont accueilli un nouveau partenaire : Guzzle 7.0. En tant que bibliothèque client HTTP, Guzzle est bien accueillie et utilisée par de nombreux programmeurs PHP. Désormais, avec la sortie de PHP8.0, la bibliothèque Guzzle est également apparue dans notre champ de vision avec une nouvelle attitude.

Cet article présentera principalement comment utiliser la bibliothèque Guzzle en PHP8.0 et quelques astuces.

1. Introduction à la bibliothèque Guzzle

Guzzle est une bibliothèque client HTTP qui utilise le protocole HTTP et les outils de streaming PHP pour implémenter des requêtes HTTP rapides, évolutives, flexibles et transparentes. Il prend en charge les requêtes et les demandes de messages synchrones et asynchrones, les nouvelles tentatives automatiques des requêtes ayant échoué et la possibilité de personnaliser le middleware.

La bibliothèque Guzzle est très populaire dans le domaine PHP et est largement utilisée dans les appels d'API RESTful, le développement de robots, le proxy HTTP, etc.

2. Nouvelles fonctionnalités de Guzzle 7.0

Guzzle 7.0 est la dernière version de Guzzle, qui introduit quelques nouvelles fonctionnalités dans PHP8.0 :

  1. Améliorations du builder : Dans la nouvelle version, nous pouvons utiliser -&gt Le La méthode ;setQuery() ajoute des paramètres de requête à la requête.
  2. ->setQuery()方法为请求添加查询参数。
  3. 改进异常处理:在Guzzle 7.0中,异常类已更新并支持Throw异常处理。
  4. 增加了几种请求格式:在新版Guzzle中,我们可以使用'body' => fopen('/path/to/file', 'r')以及'body' => 'example of string'的方式来发送请求。
  5. 优化请求响应时间:新版Guzzle提供了一个可选的stream控制器,允许在请求和响应之间处理数据流,这有助于减少响应时间、节省带宽资源。

三、Guzzle客户端实例

接下来,我们将使用实例来演示Guzzle库的使用。

  1. 发送GET请求:
$client = new GuzzleHttpClient();
$response = $client->request('GET', 'https://jsonplaceholder.typicode.com/posts');
echo $response->getBody();

代码解析:以上代码创建了一个Guzzle客户端实例,发起了一个GET请求到指定的URL,并获取了响应结果。

  1. 发送POST请求:
$client = new GuzzleHttpClient();
$response = $client->request('POST', 'https://jsonplaceholder.typicode.com/posts', [
    'form_params' => [
        'title' => 'foo',
        'body' => 'bar',
        'userId' => 1
    ]
]);
echo $response->getStatusCode(); //200
echo $response->getBody();

代码解析:以上代码创建了一个Guzzle客户端实例,发起了一个POST请求到指定的URL,并通过form_params选项设置了请求体内容。最后,本例输出了HTTP状态码和响应结果。

  1. 异步请求:
$client = new GuzzleHttpClient();
$request = new GuzzleHttpPsr7Request('GET', 'https://jsonplaceholder.typicode.com/posts');
$promise = $client->sendAsync($request)->then(function ($response) {
    echo 'I completed! ' . $response->getStatusCode();
});
$promise->wait();

代码解析:以上代码创建了一个Guzzle客户端实例和一个异步请求,并设置了Promise回调函数。通过调用->wait()Gestion des exceptions améliorée : dans Guzzle 7.0, la classe d'exception a été mise à jour et prend en charge la gestion des exceptions Throw.

Plusieurs formats de requêtes ont été ajoutés : Dans la nouvelle version de Guzzle, nous pouvons utiliser 'body' => fopen('/path/to/file', 'r') et 'body' => 'exemple de chaîne' pour envoyer la requête.

Optimiser le temps de réponse des requêtes : la nouvelle version de Guzzle fournit un contrôleur de flux en option qui permet de traiter le flux de données entre les requêtes et les réponses, ce qui permet de réduire le temps de réponse et d'économiser les ressources de bande passante.

3. Exemple de client Guzzle

Ensuite, nous utiliserons des exemples pour démontrer l'utilisation de la bibliothèque Guzzle. 🎜🎜🎜Envoyer la requête GET : rrreee🎜Analyse du code : le code ci-dessus crée une instance client Guzzle, lance une requête GET à l'URL spécifiée et obtient le résultat de la réponse. 🎜
    🎜Envoyer la requête POST :
rrreee🎜Analyse du code : le code ci-dessus crée une instance client Guzzle, lance une requête POST à ​​l'URL spécifiée et transmet form_params définit le contenu du corps de la requête. Enfin, cet exemple génère le code d'état HTTP et le résultat de la réponse. 🎜
    🎜Requête asynchrone :
rrreee🎜Analyse du code : Le code ci-dessus crée une instance client Guzzle et une requête asynchrone, et définit une fonction de rappel Promise. En appelant la méthode ->wait(), attendez la fin de la requête asynchrone et déclenchez la fonction de rappel. 🎜🎜4. Conclusion🎜🎜En tant que très excellente bibliothèque client HTTP, la bibliothèque Guzzle revêt une importance évidente dans le développement PHP. Comme Guzzle 7.0 introduit de nombreuses nouvelles fonctionnalités et optimisations dans PHP8.0, je pense qu'il continuera à occuper une position précieuse parmi les développeurs PHP à l'avenir. J'espère que cet article sera utile à tout le monde et que les lecteurs sont invités à comprendre et à utiliser la bibliothèque Guzzle en profondeur. 🎜

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