PowerShell equivalente a curl

110

Existe um equivalente de curl no PowerShell? Ele tem algum recurso interno semelhante ou há um cmdlet de terceiros?

    
por Borek Bernard 10.10.2011 / 13:19

7 respostas

74

O PowerShell 3.0 possui o novo comando Invoke-RestMethod :

link

mais detalhes:

link

    
por 04.05.2013 / 02:18
26

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"
    
por 10.10.2011 / 13:26
25

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.

    
por 31.10.2015 / 00:21
14

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.

    
por 04.04.2013 / 03:20
13

Você pode instalar o cURL com o Chocolatey e ter o curl disponível na CLI do PowerShell ou cmd .

    
por 22.01.2013 / 16:07
1

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.

    
por 11.12.2011 / 17:38
0

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 .

    
por 13.02.2018 / 13:01