Exécuter la commande Curl dans PowerShell
Le système d’exploitation Windows prend en charge un certain nombre d’outils de ligne de commande qui peuvent être très utiles dans l’automatisation. curl
est l’un de ces outils utiles qui peuvent être utilisés pour effectuer des requêtes depuis ou vers un serveur via l’un des protocoles pris en charge tels que HTTP, HTTPS, FTP, FTPS, SMTP, etc… Cet outil en ligne de commande prend en charge certains des fonctionnalités supplémentaires telles que le téléchargement FTP, la prise en charge du proxy, le transfert de reprise et la bande passante limitée.
Depuis la version 1804 officielle de Windows, curl
a été ajouté à sa chaîne d’outils. Vous pouvez vérifier cela en ouvrant l’invite de commande Windows et en exécutant la commande suivante.
curl --version
Production :
curl 7.55.1 (windows)
La sortie peut être modifiée en fonction de votre installation curl.
La curl
dans Windows PowerShell
Dans Windows PowerShell, vous devez utiliser la commande curl
d’une manière légèrement différente de celle de l’invite de commande Windows. Parce que la commande curl
est mappée en tant qu’alias à la cmdlet Invoke-WebRequest
. Vous pouvez le vérifier en exécutant la commande suivante dans une fenêtre PowerShell.
Get-Alias -Name curl
Production :
CommandType Name Version Source
----------- ---- ------- ------
Alias curl -> Invoke-WebRequest
Toutes ces commandes seront résolues dans le processus d’exécution de la commande PowerShell. Habituellement, les alias ont la priorité la plus élevée. Par conséquent, vous devez utiliser l’exécutable curl.exe
directement dans le PowerShell au lieu de curl
. Vous pouvez utiliser la cmdlet Get-Command
pour voir comment ces deux commandes sont résolues lors de l’exécution.
Get-Command curl
Production :
CommandType Name Version Source
----------- ---- ------- ------
Alias curl -> Invoke-WebRequest
Get-Command curl.exe
Production :
CommandType Name Version Source
----------- ---- ------- ------
Application curl.exe 7.55.1.0 C:\Windows\system32\curl.exe
La conclusion est que si vous devez utiliser le curl
(comme dans l’invite de commande Windows) dans PowerShell, vous devez appeler directement l’exécutable curl (curl.exe
). Sinon, vous devez vous en tenir à l’alias curl
de PowerShell qui se résout à la cmdlet Invoke-WebRequest
sous le capot.
La syntaxe curl
dans PowerShell
curl.exe [options] <url>
Vous pouvez exécuter la commande suivante pour obtenir plus d’informations sur la commande curl
et ses options telles que -a
, -C
, etc…
curl.exe --help
Production :
Usage: curl [options...] <url>
-a, --append Append to target file when uploading
.
.
.
-C, --continue-at <offset> Resumed transfer offest
Exemples de scénarios
Affiche la page Web HTML comme réponse.
curl.exe https://www.google.com
Affiche la réponse, l’en-tête de demande et l’en-tête de réponse.
curl.exe -v https://www.google.com
Affiche les informations d’en-tête.
curl.exe -I https://www.google.com
Enregistre les informations d’en-tête dans un fichier appelé file1.txt
.
curl.exe -I https://www.google.com -o file1.txt
Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.