Un aperçu de l'API HTTP WordPress wp_remote_get - les arguments

Dans les deux derniers articles, nous avons réalisé une brève étude de la wp_remote_get fonction ainsi qu'une mise en œuvre pratique de la façon de l'utiliser.

Avant de passer à d’autres aspects de l’API HTTP WordPress, il est important de savoir exactement quelles informations sont renvoyées par un appel distant en utilisant wp_remote_get afin que vous puissiez comprendre parfaitement les données renvoyées, rédiger un code plus défensif et rédiger des requêtes plus complexes en cas de besoin.

Donc, dans ce dernier article sur la performance OBTENIR demandes, nous allons examiner exactement que.


Examen de la demande

Rappelez-vous que chaque fois que vous faites une demande en utilisant wp_remote_get, tu ne seulement devez spécifier une URL. En outre, vous pouvez également envoyer un tableau facultatif d'arguments, chacun pouvant entraîner une réponse différente du serveur. si il recherche des informations particulières.

Les arguments

Dans de nombreux cas, les arguments ne seront pas nécessaires car les valeurs par défaut suffiront; Toutefois, si vous utilisez une API avancée ou recherchez une compréhension complète des arguments, les informations suivantes doivent expliquer en quoi consistent chacun des arguments disponibles, comment les utiliser et leur impact sur la demande. etre fait.

Méthode

Cet argument fait référence à la type de demande qui est faite. La chose est, puisque nous utilisons wp_remote_get, nous faisons évidemment explicitement un OBTENIR demande.

Cela dit, l'argument acceptera, OBTENIR, POSTER, et TÊTE. Si vous choisissez d'utiliser la dernière version du protocole HTTP, vous pouvez également spécifier OPTIONS, METTRE, EFFACER, RELIER, et TRACE.

Ces méthodes particulières sortent du cadre de cet article puisque nous nous concentrons principalement sur OBTENIR demandes, mais je voulais les mentionner tous ici pour compléter.

Temps libre

Cet argument est la durée pendant laquelle la demande doit attendre avant d'abandonner l'attente d'une réponse. La valeur est spécifiée en secondes et la valeur par défaut est cinq..

Donc, pratiquement, vous dites que "lancez une demande et attendez cinq secondes pour une réponse. Si aucune réponse n'est reçue, renvoyez une erreur".

Même si je n'ai jamais eu de problème avec la valeur par défaut, cela peut être intéressant si vous travaillez avec un serveur occupé et / ou ne traitant qu'un faible nombre de requêtes par seconde..

La redirection

Semblable à l’argument timeout, cette valeur spécifie combien de temps la demande doit attendre une redirection avant d’abandonner..

La chose est, OBTENIR les demandes entraîneront rarement une redirection. Plus souvent qu'autrement, OBTENIR les requêtes essaieront de se connecter à une URL pour récupérer des données (et pourront éventuellement envoyer des données dans la chaîne de requête), puis gèreront simplement la réponse ou l'erreur une fois la requête terminée ou expirée.

Si, toutefois, vous envisagez de mettre en œuvre un type de mécanisme de redirection, cette valeur peut être spécifiée en secondes. Et, comme l'argument timeout, la valeur par défaut est cinq secondes..

HTTPVersion

Cela fait référence à la version du protocole HTTP utilisée. Bien que les aspects techniques de cela dépassent le cadre de cette série, chaque version du protocole prend en charge un nombre variable d'un type de demande..

Nous avons couvert chacun de ces ci-dessus et parce que nous faisons explicitement OBTENIR demandes avec l'utilisation de wp_remote_get, alors cette valeur n'est pas celle que nous aurions besoin de modifier.

Cependant, pour des raisons de complétude, au moment de la rédaction de cet article, le protocole HTTP est actuellement doté des versions 1.0 et 1.1. Selon la version du protocole pris en charge par votre serveur, vous pourrez peut-être utiliser une plus grande variété de méthodes..

Blocage

Cet argument fait référence à la possibilité de faire une demande sans interrompre le chargement d’une page ni attendre la fin de la demande..

Par défaut, cette valeur est définie sur true comme dans le contexte de OBTENIR demandes, nous vouloir attendre le retour de la réponse pour que nous puissions en faire quelque chose; cependant, si vous faites bien faire une demande (bien que cela se fasse généralement avec un POSTER demande) pour laquelle vous ne vous souciez pas d'une réponse, vous pouvez définir cette valeur sur false.

En-têtes

Cet argument inclut tout ce que vous souhaitez envoyer sur le réseau, à l'exception des valeurs par défaut. Lors de l'exécution d'un OBTENIR demande, je n'ai pas encore personnellement trouvé de raison d'utiliser autre chose que ce qui est envoyé par défaut; Cependant, cela ne signifie pas vous pas besoin d'envoyer quelque chose de plus spécialisé dans le futur.

Les en-têtes sont généralement constitués d'informations telles que le type de contenu, l'encodage du contenu, le type MIME, etc..

Ces valeurs particulières sortent du cadre de cet article; Cependant, je prévois de les revoir lorsque nous parlerons de demandes générales à distance. Le point en les mentionnant ici est simplement de définir exactement ce qui est possible étant donné cet article.

Corps

Cet argument est simple et pour quiconque a déjà travaillé avec les données de réponse, il sait qu'il s'agit essentiellement du contenu de la demande envoyée..

Dans le cadre d'un OBTENIR demande, cela peut ou peut ne pas consister en des valeurs. Souvent fois, OBTENIR les requêtes incluent des paramètres de chaîne de requête pouvant servir de contenu à la requête; Cependant, si vous devez spécifier plus d'informations que les paires clé / valeur ou si vous avez besoin d'un emplacement explicite pour énoncer votre contenu, cet argument vous convient..

Biscuits

Enfin, s’il existe des cookies que vous devez envoyer avec votre demande, c’est le paramètre dans lequel vous les spécifierez..

Ceci est évidemment plus utile dans le contexte de la demande de données à partir d'une URL avec laquelle vous avez établi une session ou dans laquelle certaines informations résident actuellement sur l'ordinateur client - sous forme de cookie, bien sûr - et qu'il est probablement nécessaire d'envoyer à travers le fil au serveur.

Comme beaucoup des arguments ci-dessus, c’est quelque chose qui n’est pas souvent utilisé dans un OBTENIR demande, mais est toujours ouvert pour spécification, néanmoins.


Conclusion

Basé sur ce que nous avons vu jusqu'à présent, cet article peut faire wp_remote_get semble exceptionnellement plus compliqué que notre exemple pratique. Le truc, c'est que ça ne doit pas forcément être comme ça!

Rappelez-vous, les informations partagées ici sont purement pour montrer ce que vous pouvez utiliser tout en travaillant avec cette méthode API particulière - pas ce que vous avoir utiliser.

En continuant à regarder l'API HTTP, nous verrons de plus en plus ces arguments particuliers; Cependant, ils sont utilisés différemment - et souvent plus fréquemment - que d'autres méthodes. Pourtant, cela vaut la peine de les couvrir ici car ils sont une partie des paramètres acceptés de wp_remote_get.