cURL est un utilitaire de ligne de commande gratuit et open source utilisé pour transférer des données vers ou depuis un hôte distant avec une interaction minimale de l'utilisateur. cURL fonctionne avec les protocoles principaux tels que HTTP, FTP, SCP et SFTP.
Il permet aux utilisateurs de télécharger et de télécharger des données à l'aide de commandes uniques ou de scripts bash. Il fournit également des fonctionnalités telles que l'authentification de l'utilisateur, le tunneling proxy, le résumé de téléchargement, les téléchargements basés sur des formulaires, les certificats SSL et bien plus encore. Il est sûr de dire que cURL est plus qu'un client HTTP.
Ce didacticiel vous guidera à travers une fonctionnalité cURL qui permet aux utilisateurs d'effectuer des requêtes de publication HTTP à l'aide de données de fichier.
Avant de commencer, permettez-moi de mentionner qu'il ne s'agit pas d'un guide du débutant sur cURL ; vous avez besoin d'un certain savoir-faire préalable, en particulier une connaissance des protocoles réseau, des requêtes HTTP, etc.
Avant de pouvoir nous plonger dans l'utilisation de cURL pour effectuer des requêtes POST, commençons par configurer.
Comment installer cURL
Dans la plupart des cas, vous trouverez par défaut cURL installé dans les principales distributions Linux. Pour confirmer que vous avez cURL, utilisez la commande
curl --helpSi vous obtenez une erreur :
-bash : curl : commande introuvableVous devrez l'installer avant de continuer.
Utilisez le gestionnaire de packages par défaut pour terminer l'installation comme indiqué dans les commandes ci-dessous :
sudo apt-get mise à joursudo apt-get install curl -y
Avant de discuter de la manière de publier des données à partir d'un fichier avec cURL, permettez-moi de parler brièvement de la requête POST. Comme d'habitude, si vous êtes déjà familiarisé avec cela, vous pouvez passer à autre chose ; sinon reste dans les parages.
Demande cURL POST
La requête HTTP post est l'une des méthodes de requête HTTP/HTTPS les plus utilisées pour envoyer des données à un hôte distant afin de créer ou de mettre à jour une ressource.
À présent:
Veuillez ne pas confondre la méthode avec PUT ; bien qu'ils soient assez similaires, ils ont leurs différences.
Les données envoyées à l'aide d'une requête POST sont principalement stockées dans le corps de la requête HTTP.
Par exemple, considérons la requête POST ci-dessous qui envoie le nom d'utilisateur et le mot de passe ainsi que leurs valeurs.
POST /restreint/connexion.php HTTP/1.1 hôte : linuxhint.com Content-Type: application/x-www-form-urlencoded username=linuxhint&password=passwordPour envoyer la requête POST ci-dessus à l'aide de cURL, nous pouvons spécifier les commandes comme :
curl -x POST -d "username=linuxhint&password=password" https://linuxhint.com/restreint/connexion.phpDans la commande ci-dessus, nous avons utilisé l'option -d pour indiquer à cURL d'inclure les en-têtes par défaut, qui est Content-Type : application/x-www-form-urlencoded
L'option -X spécifie la méthode de requête HTTP à utiliser, dans ce cas, la requête HTTP POST.
cURL Spécifiez le type de contenu
Dans certains cas, nous pourrions vouloir spécifier [explicitement] le Content-Type lors de l'envoi de la demande. L'entité Content-Type dans l'en-tête spécifie le type de média de la ressource que nous envoyons. Le type de média est également communément appelé type MIME.
Si vous souhaitez en savoir plus sur les types MIME, consultez la ressource fournie ci-dessous :
https://linkfy.vers/IANA-MIME-Types
Pour spécifier le Content-Type dans une requête cURL, nous pouvons utiliser le drapeau -H. Par exemple, envoyons MIME Type d'application/JSON.
curl -X POST -d "nom d'utilisateur": "linuxhint", "mot de passe": "mot de passe" -H "Type de contenu: application/json" https://linuxhint.com/restreint/connexion.phpCe qui précède spécifie que nous voulons envoyer un objet JSON à l'URL fournie. Vous pouvez l'utiliser pour lire les valeurs d'un fichier JSON ou les envoyer sous forme brute.
Comment lire les données d'un fichier
Supposons que vous vouliez faire des demandes dans la ligne de commande en utilisant cURL, mais que vous ayez les données à envoyer stockées dans un fichier. Vous pouvez utiliser le Content-Type pour spécifier le type de média, puis passer le chemin du fichier contenant les données. Pour cet exemple, je vais illustrer en utilisant un objet JSON.
Le fichier JSON (données.json) contient les valeurs suivantes :
"nom d'utilisateur": "linuxhint",
"mot de passe": "mot de passe"
Pour envoyer ces données à partir d'un fichier JSON, nous pouvons utiliser le -d puis passer le nom du fichier comme indiqué dans la commande ci-dessous :
curl -X POST -H « Type de contenu : application/json » -d « @data.json" https://linuxhint.com/restreint/connexion.phpVous pouvez également utiliser l'option -data-binary.
curl -X POST -H « Type de contenu : application/json » --data-binary « @/home/user/data.json" https://linuxhint.com/restreint/connexion.phpVous pouvez également utiliser un fichier texte pour envoyer les données ; tout ce que vous devez spécifier est le Content-Type comme text/plain.
Par exemple, un fichier texte (données.txt) contenant les valeurs suivantes
username=linuxhint&password=mot de passeÀ l'aide de la commande cURL, envoyez simplement la requête en tant que :
curl -X POST -H « Type de contenu : texte/plain » -d « données.txt" https://linuxhint.com/restreint/connexion.phpVous pouvez utiliser d'autres types de fichiers que vous pouvez utiliser tels que XML, HTML et bien d'autres.
Conclusion
Dans ce tutoriel, nous avons expliqué comment faire des requêtes POST et transmettre des données dans différents formats. Il est bon de garder à l'esprit qu'en plus d'être très puissant, cURL est également très flexible. Il peut combiner une collection d'options dans une seule commande pour créer des requêtes puissantes. Pour plus d'informations, je recommande la documentation cURL car elle est bien écrite.
https://curl.se/docs/
Merci d'avoir lu et amusez-vous avec cURL.