{"id":25348,"date":"2021-06-04T11:31:00","date_gmt":"2021-06-04T08:31:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=25348"},"modified":"2021-10-18T02:09:08","modified_gmt":"2021-10-17T23:09:08","slug":"comment-utiliser-guzzle-un-client-http-php-pour-envoyer-des-requetes-http","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/fr\/comment-utiliser-guzzle-un-client-http-php-pour-envoyer-des-requetes-http\/","title":{"rendered":"Comment utiliser Guzzle &#8211; Un client HTTP PHP pour envoyer des requ\u00eates HTTP"},"content":{"rendered":"<p>Le d\u00e9veloppeur rencontre toujours une t\u00e2che pour laquelle il doit envoyer des requ\u00eates HTTP \u00e0 d&rsquo;autres ressources et g\u00e9rer la r\u00e9ponse. La fa\u00e7on la plus courante d&rsquo;effectuer ces t\u00e2ches consiste \u00e0 utiliser un cURL. Cependant, utiliser le cURL n&rsquo;est pas relativement facile pour un d\u00e9butant. Aussi pour \u00e9crire un script en cURL, votre serveur doit avoir activ\u00e9 l&rsquo;extension cURL.<\/p>\n<p><a href=\"https:\/\/docs.guzzlephp.org\/en\/stable\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Guzzle<\/a> est une alternative \u00e0 cURL. C&rsquo;est un client PHP HTTP qui facilite l&rsquo;envoi de requ\u00eates HTTP et l&rsquo;int\u00e9gration aux services Web. M\u00eame, d&rsquo;apr\u00e8s mon exp\u00e9rience, je peux dire que Guzzle est meilleur que cURL. C&rsquo;est simple et facile \u00e0 utiliser. Si vous utilisez Guzzle, vous n&rsquo;avez pas besoin d&rsquo;avoir l&rsquo;extension cURL sur votre serveur. Il vous donne un meilleur formatage du code par rapport \u00e0 cURL.<\/p>\n<p>Cela \u00e9tant dit, voyons comment utiliser Guzzle dans votre application.<\/p>\n<h3>Installation<\/h3>\n<p>La m\u00e9thode recommand\u00e9e pour installer Guzzle consiste \u00e0 utiliser Composer. Si vous n&rsquo;avez pas install\u00e9 Composer sur votre syst\u00e8me, vous pouvez l&rsquo;obtenir <a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">ici<\/a>.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20348-6081e2b54209f.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20348-6081e2b54209f.png\" alt=\"Comment utiliser Guzzle - Un client HTTP PHP pour envoyer des requ\u00eates HTTP\" ><\/a><\/p>\n<p>Ouvrez le terminal dans le r\u00e9pertoire racine de votre projet et ex\u00e9cutez la commande ci-dessous pour installer Guzzle.<\/p>\n<pre><code>composer require guzzlehttp\/guzzle<\/code><\/pre>\n<p>Guzzle prend en charge toutes les requ\u00eates HTTP qui sont GET, DELETE, HEAD, OPTIONS, PATCH, POST et PUT. Dans ce tutoriel, nous \u00e9tudions comment utiliser Guzzle pour envoyer des requ\u00eates HTTP et g\u00e9rer les r\u00e9ponses avec.<\/p>\n<p>\u00c0 titre d&rsquo;exemple, je prends le service <a href=\"https:\/\/reqres.in\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">REQ|RES<\/a> qui fournit une fausse vraie API pour tester les requ\u00eates HTTP.<\/p>\n<h3>Comment envoyer une requ\u00eate HTTP \u00e0 l&rsquo;aide de Guzzle<\/h3>\n<p>Lors de l&rsquo;installation de la biblioth\u00e8que Guzzle, vous devez inclure un environnement Guzzle dans votre fichier comme suit.<\/p>\n<pre><code>&lt;?php\nrequire_once \"vendor\/autoload.php\";\n\u00a0\nuse GuzzleHttpClient;<\/code><\/pre>\n<p>Essayons maintenant quelques op\u00e9rations une par une telles que GET, POST, T\u00e9l\u00e9chargement de fichier, copie de fichier d&rsquo;une URL distante vers un r\u00e9pertoire local, PUT, PATCH et DELETE.<\/p>\n<h4>GET Requ\u00eate en utilisant Guzzle<\/h4>\n<p>Si vous regardez le site Web de REQ|RES, ils ont fourni quelques points de terminaison pour les demandes \u00ab\u00a0GET\u00a0\u00bb. Je vais prendre l&rsquo;exemple du point de terminaison &lsquo;LIST USERS&rsquo;. Pour obtenir la liste des utilisateurs, ils demandent d&rsquo;envoyer une requ\u00eate GET \u00e0 ce point de terminaison <a href=\"https:\/\/reqres.in\/api\/users?page=2\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">https:\/\/reqres.in\/api\/users?page=2<\/a>.<\/p>\n<p>Dans Guzzle, nous enverrons cette requ\u00eate GET comme suit.<\/p>\n<pre><code>&lt;?php\nrequire_once \"vendor\/autoload.php\";\n\u00a0\u00a0\nuse GuzzleHttpClient;\n\u00a0\n$client = new Client([\n\u00a0\u00a0\u00a0\u00a0\/\/ Base URI is used with relative requests\n\u00a0\u00a0\u00a0\u00a0'base_uri' =&gt; 'https:\/\/reqres.in',\n]);\n\u00a0\u00a0\n$response = $client-&gt;request('GET', '\/api\/users', [\n\u00a0\u00a0\u00a0\u00a0'query' =&gt; [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'page' =&gt; '2',\n\u00a0\u00a0\u00a0\u00a0]\n]);\n\u00a0\n\/\/get status code using $response-&gt;getStatusCode();\n\u00a0\n$body = $response-&gt;getBody();\n$arr_body = json_decode($body);\nprint_r($arr_body);<\/code><\/pre>\n<p>J&rsquo;ai d&rsquo;abord extrait une &lsquo;base_uri&rsquo; (URL commune) en tant que <a href=\"https:\/\/reqres.in\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">https:\/\/reqres.in<\/a>. Ici, le point de terminaison final est &lsquo;\/api\/users&rsquo; et il n\u00e9cessite un param\u00e8tre GET comme &lsquo;page&rsquo;. Dans Guzzle, vous pouvez envoyer des param\u00e8tres GET en utilisant le tableau &lsquo;query&rsquo; comme indiqu\u00e9 dans le code ci-dessus.<\/p>\n<h4>Demande POST \u00e0 \u200b\u200bl&rsquo;aide de Guzzle<\/h4>\n<p>Normalement, il existe 2 types de requ\u00eates POST. Vous devrez peut-\u00eatre envoyer les param\u00e8tres en tant que demande POST &lsquo;application\/x-www-form-urlencoded&rsquo; ou t\u00e9l\u00e9charger des donn\u00e9es encod\u00e9es JSON en tant que corps de la demande. Vous pouvez publier des donn\u00e9es encod\u00e9es JSON comme indiqu\u00e9 ci-dessous.<\/p>\n<pre><code>&lt;?php\nrequire_once \"vendor\/autoload.php\";\n\u00a0\u00a0\nuse GuzzleHttpClient;\n\u00a0\n$client = new Client([\n\u00a0\u00a0\u00a0\u00a0\/\/ Base URI is used with relative requests\n\u00a0\u00a0\u00a0\u00a0'base_uri' =&gt; 'https:\/\/reqres.in',\n]);\n\u00a0\n$response = $client-&gt;request('POST', '\/api\/users', [\n\u00a0\u00a0\u00a0\u00a0'json' =&gt; [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'name' =&gt; 'Sam',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'job' =&gt; 'Developer'\n\u00a0\u00a0\u00a0\u00a0]\n]);\n\u00a0\n\/\/get status code using $response-&gt;getStatusCode();\n\u00a0\n$body = $response-&gt;getBody();\n$arr_body = json_decode($body);\nprint_r($arr_body);<\/code><\/pre>\n<p>Dans le cas de la requ\u00eate POST &lsquo;application\/x-www-form-urlencoded&rsquo;, vous pouvez POST les param\u00e8tres comme suit.<\/p>\n<pre><code>&lt;?php\nrequire_once \"vendor\/autoload.php\";\n\u00a0\u00a0\nuse GuzzleHttpClient;\n\u00a0\n$client = new Client([\n\u00a0\u00a0\u00a0\u00a0\/\/ Base URI is used with relative requests\n\u00a0\u00a0\u00a0\u00a0'base_uri' =&gt; 'BASE_URL_ENDPOINT',\n]);\n\u00a0\n$client-&gt;request('POST', '\/endpoint_here', [\n\u00a0\u00a0\u00a0'form_params' =&gt; [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'foo' =&gt; 'bar',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'baz' =&gt; ['hi', 'there!']\n\u00a0\u00a0\u00a0]\n]);<\/code><\/pre>\n<p>Dans certains cas, les points de terminaison d&rsquo;API vous demandent d&rsquo;envoyer un jeton d&rsquo;autorisation dans chaque requ\u00eate HTTP. L&rsquo;utilisateur peut envoyer ce jeton sous forme d&rsquo;en-t\u00eates dans votre demande Guzzle.<\/p>\n<pre><code>&lt;?php\n$client-&gt;request('POST', '\/endpoint_here', [\n\u00a0\u00a0\u00a0\u00a0\"headers\" =&gt; [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"Authorization\" =&gt; \"Bearer TOKEN_VALUE\"\n\u00a0\u00a0\u00a0\u00a0],\n\u00a0\u00a0\u00a0\u00a0'form_params' =&gt; [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'foo' =&gt; 'bar',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'baz' =&gt; ['hi', 'there!']\n\u00a0\u00a0\u00a0\u00a0]\n]);<\/code><\/pre>\n<h4>Copier le fichier du serveur distant \u00e0 l&rsquo;aide de Guzzle<\/h4>\n<p>Si vous cherchez \u00e0 copier un fichier d&rsquo;un serveur distant vers votre r\u00e9pertoire local, Guzzle sera une meilleure option. Supposons que vous souhaitiez copier cette image \u00e0 l&rsquo; <a href=\"https:\/\/artisansweb.net\/wp-content\/uploads\/2020\/03\/blog.jpg\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">adresse https:\/\/artisansweb.net\/wp-content\/uploads\/2020\/03\/blog.jpg en<\/a> tant que \u00ab\u00a0blog.jpg\u00a0\u00bb dans votre r\u00e9pertoire local. Nous allons \u00e9crire le code pour cela comme indiqu\u00e9 ci-dessous.<\/p>\n<pre><code>&lt;?php\nrequire_once \"vendor\/autoload.php\";\n\u00a0\u00a0\nuse GuzzleHttpClient;\n\u00a0\n$fp = fopen('blog.jpg', 'wb');\n\u00a0\n$client = new GuzzleHttpClient();\n$request = $client-&gt;get('https:\/\/artisansweb.net\/wp-content\/uploads\/2020\/03\/blog.jpg', ['sink' =&gt; $fp]);\n\u00a0\nfclose($fp);<\/code><\/pre>\n<h4>T\u00e9l\u00e9chargement de fichiers avec Guzzle<\/h4>\n<p>Comme nous le savons tous, pour t\u00e9l\u00e9charger des fichiers, nous devons d\u00e9finir le corps de la demande sur un formulaire \u00ab\u00a0multipart\/form-data\u00a0\u00bb. Le code de base dans Guzzle pour le t\u00e9l\u00e9chargement de fichiers serait \u00e9crit comme ci-dessous.<\/p>\n<pre><code>&lt;?php\nrequire_once \"vendor\/autoload.php\";\n\u00a0\u00a0\nuse GuzzleHttpClient;\n\u00a0\n$client = new Client([\n\u00a0\u00a0\u00a0\u00a0\/\/ Base URI is used with relative requests\n\u00a0\u00a0\u00a0\u00a0'base_uri' =&gt; 'BASE_URL_HERE',\n]);\n\u00a0\n$client-&gt;request('POST', '\/endpoint_here', [\n\u00a0\u00a0\u00a0\u00a0'multipart' =&gt; [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0[\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'name'\u00a0\u00a0\u00a0\u00a0 =&gt; 'files', \/\/ name value requires by endpoint\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'contents' =&gt; fopen('\/path\/to\/file', 'r'),\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'filename' =&gt; 'custom_image.jpg'\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0],\n\u00a0\u00a0\u00a0\u00a0]\n]);<\/code><\/pre>\n<p>Pour d\u00e9montrer le t\u00e9l\u00e9chargement de fichier, je vais prendre un exemple en direct de l&rsquo; <a href=\"https:\/\/resmush.it\/api\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">API reSmush.it<\/a> qui envoie une version optimis\u00e9e de l&rsquo;image en r\u00e9ponse. Vous devez POSTER votre image \u00e0 leur point de terminaison. Le code pour cela en utilisant Guzzle comme suit.<\/p>\n<pre><code>&lt;?php\nrequire_once \"vendor\/autoload.php\";\n\u00a0\u00a0\nuse GuzzleHttpClient;\n\u00a0\ntry {\n\u00a0\u00a0\u00a0\u00a0$client = new Client([\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ Base URI is used with relative requests\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'base_uri' =&gt; 'http:\/\/api.resmush.it',\n\u00a0\u00a0\u00a0\u00a0]);\n\u00a0\n\u00a0\u00a0\u00a0\u00a0$response = $client-&gt;request('POST', \"?qlty=92\", [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'multipart' =&gt; [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0[\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'name'\u00a0\u00a0\u00a0\u00a0 =&gt; 'files', \/\/ name value requires by endpoint\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'contents' =&gt; fopen(getcwd().'\/blog.jpg', 'r'),\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'filename' =&gt; 'blog.jpg',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'headers'\u00a0 =&gt; array('Content-Type' =&gt; mime_content_type(getcwd().'\/blog.jpg'))\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0]\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0]\n\u00a0\u00a0\u00a0\u00a0]);\n\u00a0\n\u00a0\u00a0\u00a0\u00a0if (200 == $response-&gt;getStatusCode()) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$response = $response-&gt;getBody();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$arr_result = json_decode($response);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0print_r($arr_result);\n\u00a0\u00a0\u00a0\u00a0}\n} catch (Exception $e) {\n\u00a0\u00a0\u00a0\u00a0echo $e-&gt;getMessage();\n}<\/code><\/pre>\n<h3>Requ\u00eate PUT, PATCH et DELETE avec Guzzle<\/h3>\n<p>Les requ\u00eates PUT et PATCH sont utilis\u00e9es pour mettre \u00e0 jour les ressources. Cependant, ces 2 requ\u00eates le font diff\u00e9remment.<\/p>\n<p>PUT \u00e9crase toute l&rsquo;entit\u00e9 si elle existe d\u00e9j\u00e0 et cr\u00e9e une nouvelle ressource si elle n&rsquo;existe pas. Si vous souhaitez mettre \u00e0 jour le nom d&rsquo;une personne, vous devez envoyer l&rsquo;int\u00e9gralit\u00e9 de la ressource lors d&rsquo;une requ\u00eate PUT.<\/p>\n<pre><code>&lt;?php\n&lt;?php\nrequire_once \"vendor\/autoload.php\";\n\u00a0\u00a0\nuse GuzzleHttpClient;\n\u00a0\u00a0\n$client = new Client([\n\u00a0\u00a0\u00a0\u00a0\/\/ Base URI is used with relative requests\n\u00a0\u00a0\u00a0\u00a0'base_uri' =&gt; 'https:\/\/reqres.in',\n]);\n\u00a0\u00a0\n$response = $client-&gt;request('PUT', '\/api\/users\/2', [\n\u00a0\u00a0\u00a0\u00a0'json' =&gt; [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'name' =&gt; 'Sam',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'job' =&gt; 'Developer'\n\u00a0\u00a0\u00a0\u00a0]\n]);\n\u00a0\u00a0\n\/\/get status code using $response-&gt;getStatusCode();\n\u00a0\n$body = $response-&gt;getBody();\n$arr_body = json_decode($body);\nprint_r($arr_body);<\/code><\/pre>\n<p>La demande PATCH applique une mise \u00e0 jour partielle \u00e0 la ressource. Cela signifie que vous n&rsquo;\u00eates tenu d&rsquo;envoyer que les donn\u00e9es que vous souhaitez mettre \u00e0 jour, et cela n&rsquo;affectera ni ne changera rien d&rsquo;autre. Ainsi, si vous souhaitez mettre \u00e0 jour le nom d&rsquo;une personne, il vous suffira d&rsquo;envoyer le param\u00e8tre name.<\/p>\n<pre><code>&lt;?php\nrequire_once \"vendor\/autoload.php\";\n\u00a0\u00a0\nuse GuzzleHttpClient;\n\u00a0\u00a0\n$client = new Client([\n\u00a0\u00a0\u00a0\u00a0\/\/ Base URI is used with relative requests\n\u00a0\u00a0\u00a0\u00a0'base_uri' =&gt; 'https:\/\/reqres.in',\n]);\n\u00a0\u00a0\n$response = $client-&gt;request('PATCH', '\/api\/users\/2', [\n\u00a0\u00a0\u00a0\u00a0'json' =&gt; [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'name' =&gt; 'Sam',\n\u00a0\u00a0\u00a0\u00a0]\n]);\n\u00a0\u00a0\n\/\/get status code using $response-&gt;getStatusCode();\n\u00a0\n$body = $response-&gt;getBody();\n$arr_body = json_decode($body);\nprint_r($arr_body);<\/code><\/pre>\n<p>Une demande DELETE est simple. Il vous suffit d&rsquo;atteindre le point de terminaison comme suit.<\/p>\n<pre><code>&lt;?php\nrequire_once \"vendor\/autoload.php\";\n\u00a0\u00a0\nuse GuzzleHttpClient;\n\u00a0\u00a0\n$client = new Client([\n\u00a0\u00a0\u00a0\u00a0\/\/ Base URI is used with relative requests\n\u00a0\u00a0\u00a0\u00a0'base_uri' =&gt; 'https:\/\/reqres.in',\n]);\n\u00a0\u00a0\n$response = $client-&gt;request('DELETE', '\/api\/users\/2');\n\u00a0\u00a0\necho $response-&gt;getStatusCode(); \/\/should gives 204<\/code><\/pre>\n<p>J&rsquo;esp\u00e8re que vous avez d\u00e9couvert Guzzle et les bases de son utilisation. Vous pouvez en savoir plus sur les options de demande de Guzzle dans leur <a href=\"https:\/\/docs.guzzlephp.org\/en\/stable\/request-options.html\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">documentation<\/a>. S&rsquo;il vous pla\u00eet partager vos pens\u00e9es ou suggestions dans la section commentaires ci-dessous.<\/p>\n<h4>Articles Li\u00e9s<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/fr\/api-youtube-comment-obtenir-la-liste-des-videos-youtube-de-votre-chaine\/\" title=\"API YouTube - Comment obtenir la liste des vid\u00e9os YouTube de votre cha\u00eene\">API YouTube &#8211; Comment obtenir la liste des vid\u00e9os YouTube de votre cha\u00eene<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/fr\/tinypng-compresse-des-images-a-l-aide-de-php\/\" title=\"TinyPNG compresse des images \u00e0 l&#039;aide de PHP\">TinyPNG compresse des images \u00e0 l&rsquo;aide de PHP<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/fr\/validation-de-formulaire-html-a-l-aide-de-persil\/\" title=\"Validation de formulaire HTML \u00e0 l&#039;aide de persil\">Validation de formulaire HTML \u00e0 l&rsquo;aide de persil<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Source d&rsquo;enregistrement:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Guzzle fournit un moyen transparent d&rsquo;envoyer une requ\u00eate HTTP et de g\u00e9rer la r\u00e9ponse. Dans cet article, nous \u00e9tudions comment envoyer une requ\u00eate HTTP et g\u00e9rer<\/p>\n","protected":false},"author":1,"featured_media":21661,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[273],"tags":[844],"class_list":["post-25348","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php-4","tag-affiai-fr"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/posts\/25348","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/comments?post=25348"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/posts\/25348\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/media\/21661"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/media?parent=25348"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/categories?post=25348"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/tags?post=25348"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}