O PowerShell 3.0 possui o novo comando Invoke-RestMethod
:
mais detalhes:
Existe um equivalente de curl
no PowerShell? Ele tem algum recurso interno semelhante ou há um cmdlet de terceiros?
O excelente blog Kung Fu da Command Line tem um post onde eles comparam curl, wget e os comandos relacionados do PowerShell
Em poucas palavras:
(New-Object System.Net.WebClient).DownloadString("http://www.example.com/hello-world.html","C:\hello-world.html")
Ou, se a sua versão do Powershell / .Net não aceitar 2 parâmetros para DownloadString
:
(New-Object System.Net.WebClient).DownloadString("http://www.example.com/hello-world.html") > "C:\hello-world.html"
A partir do Powershell 5.0, se não antes, curl
é um alias para Invoke-WebRequest
.
PS> Get-Alias -Definition Invoke-WebRequest | Format-Table -AutoSize
CommandType Name Version Source
----------- ---- ------- ------
Alias curl -> Invoke-WebRequest
Alias iwr -> Invoke-WebRequest
Alias wget -> Invoke-WebRequest
Para usar o comando unaliased ...
PS> Invoke-WebRequest -Uri https://localhost:443/
PS> Invoke-WebRequest -Uri https://www.google.com
Portanto, retorne várias propriedades da solicitação da seguinte forma ...
PS> Invoke-WebRequest -Uri https://www.google.com
StatusCode : 200
StatusDescription : OK
Content : <!doctype html><html itemscope="" itemtype="http://schema.org/WebPage" lang="en-AU"><head><meta content="text/html; charset=UTF-8"
http-equiv="Content-Type"><meta content="/images/branding/googleg/1x/...
RawContent : HTTP/1.1 200 OK
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Vary: Accept-Encoding
... ou apenas o conteúdo ...
PS> Invoke-WebRequest -Uri https://www.google.com | Select-Object -ExpandProperty Content
<!doctype html><html itemscope="" itemtype="http://schem[etc ...]
Os comandos com alias equivalentes são ...
PS> curl -Uri https://www.google.com
PS> curl -Uri https://www.google.com | Select-Object -ExpandProperty Content
Aproveitando os padrões do Powershell e outros aliases, você pode encurtar os comandos para
PS> curl https://www.google.com
ps> curl https://www.google.com | Select -ExpandProperty Content
... mas eu não recomendaria isso. Comandos verbosos ajudam os outros ao ler seu código.
Você também pode instalar o Git para Windows e, em seguida, colocar a pasta Git bin no seu caminho. A instalação do Git inclui, entre outras coisas, o curl.exe. Após a instalação, basta colocar %programfiles(x86)%\git\bin
no seu PATH. Em seguida, você poderá usar o comando curl no prompt de comando do Windows ou no console do PowerShell.
Você pode instalar o cURL com o Chocolatey e ter o curl disponível na CLI do PowerShell ou cmd
.
o mais próximo de wget
ou curl
no Windows é bits (Serviço de Transferência Inteligente em Segundo Plano), que tem alguns trechos prontos para o powershell.
Este comando deve funcionar:
Invoke-WebRequest -UseBasicParsing -Uri http://example.com/
Faz parte do Microsoft.PowerShell. Utilitário desde o PowerShell 3.0.
Veja também: Obtenha $ webclient.downloadstring para gravar em arquivo de texto no Powershell .
Tags curl powershell