Invoke-WebRequest
Obtém conteúdo de uma página da Web na internet.
Sintaxe
Invoke-WebRequest
[-UseBasicParsing]
[-Uri] <Uri>
[-HttpVersion <Version>]
[-WebSession <WebRequestSession>]
[-SessionVariable <String>]
[-AllowUnencryptedAuthentication]
[-Authentication <WebAuthenticationType>]
[-Credential <PSCredential>]
[-UseDefaultCredentials]
[-CertificateThumbprint <String>]
[-Certificate <X509Certificate>]
[-SkipCertificateCheck]
[-SslProtocol <WebSslProtocol>]
[-Token <SecureString>]
[-UserAgent <String>]
[-DisableKeepAlive]
[-ConnectionTimeoutSeconds <Int32>]
[-OperationTimeoutSeconds <Int32>]
[-Headers <IDictionary>]
[-SkipHeaderValidation]
[-AllowInsecureRedirect]
[-MaximumRedirection <Int32>]
[-MaximumRetryCount <Int32>]
[-PreserveAuthorizationOnRedirect]
[-RetryIntervalSec <Int32>]
[-Method <WebRequestMethod>]
[-PreserveHttpMethodOnRedirect]
[-UnixSocket <UnixDomainSocketEndPoint>]
[-Proxy <Uri>]
[-ProxyCredential <PSCredential>]
[-ProxyUseDefaultCredentials]
[-Body <Object>]
[-Form <IDictionary>]
[-ContentType <String>]
[-TransferEncoding <String>]
[-InFile <String>]
[-OutFile <String>]
[-PassThru]
[-Resume]
[-SkipHttpErrorCheck]
[<CommonParameters>]
Invoke-WebRequest
[-UseBasicParsing]
[-Uri] <Uri>
[-HttpVersion <Version>]
[-WebSession <WebRequestSession>]
[-SessionVariable <String>]
[-AllowUnencryptedAuthentication]
[-Authentication <WebAuthenticationType>]
[-Credential <PSCredential>]
[-UseDefaultCredentials]
[-CertificateThumbprint <String>]
[-Certificate <X509Certificate>]
[-SkipCertificateCheck]
[-SslProtocol <WebSslProtocol>]
[-Token <SecureString>]
[-UserAgent <String>]
[-DisableKeepAlive]
[-ConnectionTimeoutSeconds <Int32>]
[-OperationTimeoutSeconds <Int32>]
[-Headers <IDictionary>]
[-SkipHeaderValidation]
[-AllowInsecureRedirect]
[-MaximumRedirection <Int32>]
[-MaximumRetryCount <Int32>]
[-PreserveAuthorizationOnRedirect]
[-RetryIntervalSec <Int32>]
[-Method <WebRequestMethod>]
[-PreserveHttpMethodOnRedirect]
[-UnixSocket <UnixDomainSocketEndPoint>]
[-NoProxy]
[-Body <Object>]
[-Form <IDictionary>]
[-ContentType <String>]
[-TransferEncoding <String>]
[-InFile <String>]
[-OutFile <String>]
[-PassThru]
[-Resume]
[-SkipHttpErrorCheck]
[<CommonParameters>]
Invoke-WebRequest
[-UseBasicParsing]
[-Uri] <Uri>
[-HttpVersion <Version>]
[-WebSession <WebRequestSession>]
[-SessionVariable <String>]
[-AllowUnencryptedAuthentication]
[-Authentication <WebAuthenticationType>]
[-Credential <PSCredential>]
[-UseDefaultCredentials]
[-CertificateThumbprint <String>]
[-Certificate <X509Certificate>]
[-SkipCertificateCheck]
[-SslProtocol <WebSslProtocol>]
[-Token <SecureString>]
[-UserAgent <String>]
[-DisableKeepAlive]
[-ConnectionTimeoutSeconds <Int32>]
[-OperationTimeoutSeconds <Int32>]
[-Headers <IDictionary>]
[-SkipHeaderValidation]
[-AllowInsecureRedirect]
[-MaximumRedirection <Int32>]
[-MaximumRetryCount <Int32>]
[-PreserveAuthorizationOnRedirect]
[-RetryIntervalSec <Int32>]
-CustomMethod <String>
[-PreserveHttpMethodOnRedirect]
[-UnixSocket <UnixDomainSocketEndPoint>]
[-Proxy <Uri>]
[-ProxyCredential <PSCredential>]
[-ProxyUseDefaultCredentials]
[-Body <Object>]
[-Form <IDictionary>]
[-ContentType <String>]
[-TransferEncoding <String>]
[-InFile <String>]
[-OutFile <String>]
[-PassThru]
[-Resume]
[-SkipHttpErrorCheck]
[<CommonParameters>]
Invoke-WebRequest
[-UseBasicParsing]
[-Uri] <Uri>
[-HttpVersion <Version>]
[-WebSession <WebRequestSession>]
[-SessionVariable <String>]
[-AllowUnencryptedAuthentication]
[-Authentication <WebAuthenticationType>]
[-Credential <PSCredential>]
[-UseDefaultCredentials]
[-CertificateThumbprint <String>]
[-Certificate <X509Certificate>]
[-SkipCertificateCheck]
[-SslProtocol <WebSslProtocol>]
[-Token <SecureString>]
[-UserAgent <String>]
[-DisableKeepAlive]
[-ConnectionTimeoutSeconds <Int32>]
[-OperationTimeoutSeconds <Int32>]
[-Headers <IDictionary>]
[-SkipHeaderValidation]
[-AllowInsecureRedirect]
[-MaximumRedirection <Int32>]
[-MaximumRetryCount <Int32>]
[-PreserveAuthorizationOnRedirect]
[-RetryIntervalSec <Int32>]
-CustomMethod <String>
[-PreserveHttpMethodOnRedirect]
[-UnixSocket <UnixDomainSocketEndPoint>]
[-NoProxy]
[-Body <Object>]
[-Form <IDictionary>]
[-ContentType <String>]
[-TransferEncoding <String>]
[-InFile <String>]
[-OutFile <String>]
[-PassThru]
[-Resume]
[-SkipHttpErrorCheck]
[<CommonParameters>]
Description
O Invoke-WebRequest
cmdlet envia solicitações HTTP e HTTPS para uma página ou serviço Web. Ele analisa a resposta e retorna coleções de links, imagens e outros elementos HTML significativos.
Este cmdlet foi introduzido no PowerShell 3.0.
A partir do PowerShell 7.0, Invoke-WebRequest
oferece suporte à configuração de proxy definida por variáveis de ambiente. Consulte a seção Notas deste artigo.
Importante
Os exemplos neste artigo fazem referência a contoso.com
hosts no domínio. Este é um domínio fictício usado pela Microsoft para exemplos. Os exemplos são projetados para mostrar como usar os cmdlets.
No entanto, como os contoso.com
sites não existem, os exemplos não funcionam. Adapte os exemplos aos anfitriões no seu ambiente.
A partir do PowerShell 7.4, a codificação de caracteres para solicitações assume como padrão UTF-8 em vez de ASCII. Se você precisar de uma codificação diferente, deverá definir o charset
Content-Type
atributo no cabeçalho.
Exemplos
Exemplo 1: Enviar um pedido Web
Este exemplo usa o Invoke-WebRequest
cmdlet para enviar uma solicitação da Web para o site Bing.com.
$Response = Invoke-WebRequest -URI https://www.bing.com/search?q=how+many+feet+in+a+mile
$Response.InputFields | Where-Object {
$_.name -like "* Value*"
} | Select-Object Name, Value
name value
---- -----
From Value 1
To Value 5280
O primeiro comando emite a solicitação e salva a resposta na $Response
variável.
O segundo comando obtém qualquer InputField onde a propriedade Name é como "* Value"
. Os resultados filtrados são canalizados para Select-Object
selecionar as propriedades Name e Value .
Exemplo 2: Usar um serviço Web com monitoração de estado
Este exemplo mostra como usar o Invoke-WebRequest
cmdlet com um serviço Web com monitoração de estado.
$LoginParameters = @{
Uri = 'https://www.contoso.com/login/'
SessionVariable = 'Session'
Method = 'POST'
Body = @{
User = 'jdoe'
Password = 'P@S$w0rd!'
}
}
$LoginResponse = Invoke-WebRequest @LoginParameters
$ProfileResponse = Invoke-WebRequest 'https://www.contoso.com/profile/' -WebSession $Session
A primeira chamada para Invoke-WebRequest
enviar uma solicitação de entrada. O comando especifica um valor de Session
para o valor do parâmetro SessionVariable . Quando o comando é concluído, a $LoginResponse
variável contém um BasicHtmlWebResponseObject e a $Session
variável contém um WebRequestSession
objeto. Isso registra o usuário no site.
A segunda chamada para Invoke-WebRequest
buscar o perfil do usuário, que exige que o usuário esteja conectado ao site. Os dados de $Session
sessão armazenados na variável fornecem cookies de sessão para o site criado durante o login.
Exemplo 3: Obter links de uma página da Web
Este exemplo obtém os links em uma página da Web. Ele usa o Invoke-WebRequest
cmdlet para obter o conteúdo da página da Web. Em seguida, ele usa a propriedade Links do BasicHtmlWebResponseObject que Invoke-WebRequest
retorna e a propriedade Href de cada link.
(Invoke-WebRequest -Uri "https://aka.ms/pscore6-docs").Links.Href
Exemplo 4: Gravar conteúdo de resposta em um arquivo usando a codificação definida na página solicitada
Este exemplo usa o Invoke-WebRequest
cmdlet para recuperar o conteúdo da página da Web de uma página de documentação do PowerShell.
$Response = Invoke-WebRequest -Uri "https://aka.ms/pscore6-docs"
$Stream = [System.IO.StreamWriter]::new('.\docspage.html', $false, $Response.Encoding)
try {
$Stream.Write($Response.Content)
} finally {
$Stream.Dispose()
}
O primeiro comando recupera a página e salva o objeto de resposta na $Response
variável.
O segundo comando cria um StreamWriter para usar para gravar o conteúdo de resposta em um arquivo. A propriedade Encoding do objeto de resposta é usada para definir a codificação para o arquivo.
Os comandos finais gravam a propriedade Content no arquivo e, em seguida, descartam o StreamWriter.
Observe que a propriedade Encoding será nula se a solicitação da Web não retornar conteúdo de texto.
Exemplo 5: Enviar um arquivo multipart/form-data
Este exemplo usa o Invoke-WebRequest
cmdlet upload a file como envio multipart/form-data
. O arquivo c:\document.txt
é enviado como o campo de text/plain
formulário com o Content-Type
de document
.
$FilePath = 'c:\document.txt'
$FieldName = 'document'
$ContentType = 'text/plain'
$FileStream = [System.IO.FileStream]::new($filePath, [System.IO.FileMode]::Open)
$FileHeader = [System.Net.Http.Headers.ContentDispositionHeaderValue]::new('form-data')
$FileHeader.Name = $FieldName
$FileHeader.FileName = Split-Path -leaf $FilePath
$FileContent = [System.Net.Http.StreamContent]::new($FileStream)
$FileContent.Headers.ContentDisposition = $FileHeader
$FileContent.Headers.ContentType = [System.Net.Http.Headers.MediaTypeHeaderValue]::Parse($ContentType)
$MultipartContent = [System.Net.Http.MultipartFormDataContent]::new()
$MultipartContent.Add($FileContent)
$Response = Invoke-WebRequest -Body $MultipartContent -Method 'POST' -Uri 'https://api.contoso.com/upload'
Exemplo 6: Envio simplificado de dados com várias partes/formulários
Algumas APIs exigem multipart/form-data
envios para carregar arquivos e conteúdo misto. Este exemplo demonstra a atualização de um perfil de usuário.
$Uri = 'https://api.contoso.com/v2/profile'
$Form = @{
firstName = 'John'
lastName = 'Doe'
email = 'john.doe@contoso.com'
avatar = Get-Item -Path 'c:\Pictures\jdoe.png'
birthday = '1980-10-15'
hobbies = 'Hiking','Fishing','Jogging'
}
$Result = Invoke-WebRequest -Uri $Uri -Method Post -Form $Form
O formulário de perfil requer estes campos: firstName
, lastName
, email
, avatar
, birthday
e hobbies
. A API está esperando que uma imagem para a foto de perfil do usuário seja fornecida no avatar
campo. A API também aceita várias hobbies
entradas a serem enviadas no mesmo formulário.
Ao criar o HashTable, os nomes de chave são usados como nomes de $Form
campo de formulário. Por padrão, os valores de HashTable são convertidos em cadeias de caracteres. Se um valor System.IO.FileInfo estiver presente, o conteúdo do arquivo será enviado. Se uma coleção, como matrizes ou listas, estiver presente, o campo de formulário será enviado várias vezes.
Usando Get-Item
na avatar
chave, o FileInfo
objeto é definido como o valor. O resultado é que os dados da imagem para jdoe.png
são enviados.
Ao fornecer uma lista para a hobbies
chave, o hobbies
campo está presente nos envios uma vez para cada item da lista.
Exemplo 7: Capturar mensagens sem êxito de Invoke-WebRequest
Quando Invoke-WebRequest
encontra uma mensagem HTTP sem êxito (404, 500, etc.), ela não retorna nenhuma saída e lança um erro de encerramento. Para detetar o erro e visualizar o StatusCode, você pode incluir a execução em um try/catch
bloco.
try
{
$Response = Invoke-WebRequest -Uri "www.microsoft.com/unkownhost"
# This will only execute if the Invoke-WebRequest is successful.
$StatusCode = $Response.StatusCode
} catch {
$StatusCode = $_.Exception.Response.StatusCode.value__
}
$StatusCode
404
O erro de encerramento é detetado pelo catch
bloco , que recupera o StatusCode do objeto Exception .
Exemplo 8: Baixar vários arquivos ao mesmo tempo
O Invoke-WebRequest
cmdlet só pode baixar um arquivo de cada vez. O exemplo a seguir usa Start-ThreadJob
para criar vários trabalhos de thread para baixar vários arquivos ao mesmo tempo.
$baseUri = 'https://github.com/PowerShell/PowerShell/releases/download'
$files = @(
@{
Uri = "$baseUri/v7.3.0-preview.5/PowerShell-7.3.0-preview.5-win-x64.msi"
OutFile = 'PowerShell-7.3.0-preview.5-win-x64.msi'
},
@{
Uri = "$baseUri/v7.3.0-preview.5/PowerShell-7.3.0-preview.5-win-x64.zip"
OutFile = 'PowerShell-7.3.0-preview.5-win-x64.zip'
},
@{
Uri = "$baseUri/v7.2.5/PowerShell-7.2.5-win-x64.msi"
OutFile = 'PowerShell-7.2.5-win-x64.msi'
},
@{
Uri = "$baseUri/v7.2.5/PowerShell-7.2.5-win-x64.zip"
OutFile = 'PowerShell-7.2.5-win-x64.zip'
}
)
$jobs = @()
foreach ($file in $files) {
$jobs += Start-ThreadJob -Name $file.OutFile -ScriptBlock {
$params = $using:file
Invoke-WebRequest @params
}
}
Write-Host "Downloads started..."
Wait-Job -Job $jobs
foreach ($job in $jobs) {
Receive-Job -Job $job
}
Exemplo 9: Ignorando a validação de cabeçalho
Por padrão, o cmdlet valida Invoke-WebRequest
os valores de cabeçalhos conhecidos que têm um formato de valor definido por padrões. O exemplo a seguir mostra como essa validação pode gerar um erro e como você pode usar o parâmetro SkipHeaderValidation para evitar validar valores para pontos de extremidade que toleram valores formatados incorretamente.
$Uri = 'https://httpbin.org/headers'
$InvalidHeaders = @{
'If-Match' = '12345'
}
Invoke-WebRequest -Uri $Uri -Headers $InvalidHeaders
Invoke-WebRequest -Uri $Uri -Headers $InvalidHeaders -SkipHeaderValidation
Invoke-WebRequest: The format of value '12345' is invalid.
StatusCode : 200
StatusDescription : OK
Content : {
"headers": {
"Host": "httpbin.org",
"If-Match": "12345",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Microsoft Windows 10.0.19044; en-US) PowerShell/7.2.5",
"X-Amzn-Trace-Id": �
RawContent : HTTP/1.1 200 OK
Date: Mon, 08 Aug 2022 16:24:24 GMT
Connection: keep-alive
Server: gunicorn/19.9.0
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true
Content-Type: application�
Headers : {[Date, System.String[]], [Connection, System.String[]], [Server, System.String[]], [Access-Control-Allow-Origin, System.String[]]�}
Images : {}
InputFields : {}
Links : {}
RawContentLength : 249
RelationLink : {}
httpbin.org é um serviço que retorna informações sobre solicitações da Web e respostas para solução de problemas. A $Uri
variável é atribuída ao /headers
ponto de extremidade do serviço, que retorna os cabeçalhos de uma solicitação como o conteúdo em sua resposta.
O If-Match
cabeçalho da solicitação é definido na seção 3.1 do RFC-7232 e requer que o valor desse cabeçalho seja definido com aspas ao redor. A $InvalidHeaders
variável recebe uma tabela de hash onde o valor de If-Match
é inválido porque é definido como 12345
em vez de "12345"
.
Chamar Invoke-WebRequest
com os cabeçalhos inválidos retorna um erro informando que o valor formatado é inválido. A solicitação não é enviada para o ponto de extremidade.
Chamar Invoke-WebRequest
com o parâmetro SkipHeaderValidation ignora a falha de validação e envia a solicitação para o ponto de extremidade. Como o ponto de extremidade tolera valores de cabeçalho não compatíveis, o cmdlet retorna o objeto de resposta sem erro.
Exemplo 10: Enviar uma solicitação usando HTTP 2.0
Este exemplo obtém os links em uma página da Web usando o protocolo HTTP 2.0. Ele usa o Invoke-WebRequest
cmdlet para obter o conteúdo da página da Web. Em seguida, ele usa a propriedade Links do BasicHtmlWebResponseObject que Invoke-WebRequest
retorna e a propriedade Href de cada link.
(Invoke-WebRequest -Uri 'https://aka.ms/pscore6-docs' -HttpVersion 2.0).Links.Href
Exemplo 11: Enviar uma solicitação para um aplicativo de soquete Unix
Alguns aplicativos, como o Docker, expõem um soquete Unix para comunicação. Este exemplo consulta uma lista de imagens do Docker usando a API do Docker. O cmdlet se conecta ao daemon do Docker usando o soquete Unix.
Invoke-WebRequest -Uri "http://localhost/v1.40/images/json/" -UnixSocket "/var/run/docker.sock"
Parâmetros
-AllowInsecureRedirect
Permite redirecionar de HTTPS para HTTP. Por padrão, qualquer solicitação redirecionada de HTTPS para HTTP resulta em um erro e a solicitação é abortada para impedir a comunicação não intencional em texto sem formatação por meio de conexões não criptografadas. Para substituir esse comportamento por sua conta e risco, use o parâmetro AllowInsecureRedirect .
Esse parâmetro foi adicionado no PowerShell 7.4.
Tipo: | SwitchParameter |
Position: | Named |
Default value: | False |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-AllowUnencryptedAuthentication
Permite o envio de credenciais e segredos através de ligações não encriptadas. Por padrão, fornecer Credencial ou qualquer opção de Autenticação com um Uri que não começa com https://
resulta em um erro e a solicitação é abortada para evitar a comunicação involuntária de segredos em texto sem formatação em conexões não criptografadas. Para substituir esse comportamento por sua conta e risco, forneça o parâmetro AllowUnencryptedAuthentication .
Aviso
O uso desse parâmetro não é seguro e não é recomendado. Ele é fornecido apenas para compatibilidade com sistemas legados que não podem fornecer conexões criptografadas. Use por sua conta e risco.
Esse recurso foi adicionado no PowerShell 6.0.0.
Tipo: | SwitchParameter |
Position: | Named |
Default value: | False |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-Authentication
Especifica o tipo de autenticação explícita a ser usado para a solicitação. O padrão é Nenhum. O parâmetro Authentication não pode ser usado com o parâmetro UseDefaultCredentials .
Opções de autenticação disponíveis:
None
: Esta é a opção padrão quando a Autenticação não é fornecida. Nenhuma autenticação explícita é usada.Basic
: Requer credencial. As credenciais são enviadas como um cabeçalho de autenticaçãoAuthorization: Basic
básica RFC 7617 no formato debase64(user:password)
.Bearer
: Requer o parâmetro Token . Envia um cabeçalho RFC 6750Authorization: Bearer
com o token fornecido.OAuth
: Requer o parâmetro Token . Envia um cabeçalho RFC 6750Authorization: Bearer
com o token fornecido.
O fornecimento de Autenticação substitui quaisquer Authorization
cabeçalhos fornecidos a Cabeçalhos ou incluídos no WebSession.
Esse recurso foi adicionado no PowerShell 6.0.0.
Tipo: | WebAuthenticationType |
Valores aceites: | None, Basic, Bearer, OAuth |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-Body
Especifica o corpo da solicitação. O corpo é o conteúdo da solicitação que segue os cabeçalhos.
Você também pode canalizar um valor de corpo para Invoke-WebRequest
.
O parâmetro Body pode ser usado para especificar uma lista de parâmetros de consulta ou especificar o conteúdo da resposta. Para parâmetros de consulta, o cmdlet usa o método de método System.Net.WebUtility.UrlEncode para codificar os pares chave-valor. Para obter mais informações sobre como codificar cadeias de caracteres para URLs, consulte a referência do método UrlEncode().
Quando a entrada é uma solicitação POST e o corpo é uma String, o valor à esquerda do primeiro sinal de igual (=
) é definido como uma chave nos dados do formulário e o texto restante é definido como o valor. Para especificar várias chaves, use um objeto IDictionary , como uma tabela de hash, para o Body.
Quando a entrada é um pedido GET e o corpo é um IDictionary (normalmente, uma tabela hash), o corpo é adicionado ao URI como parâmetros de consulta. Para outros tipos de solicitação (como PATCH), o corpo é definido como o valor do corpo da solicitação no formato padrão name=value
com os valores codificados por URL.
Quando a entrada é um objeto System.Xml.XmlNode e a declaração XML especifica uma codificação, essa codificação é usada para os dados na solicitação, a menos que seja substituída pelo parâmetro ContentType .
O parâmetro Body também aceita um System.Net.Http.MultipartFormDataContent
objeto. Isso facilita multipart/form-data
os pedidos. Quando um objeto MultipartFormDataContent é fornecido para Body, quaisquer cabeçalhos relacionados a Conteúdo fornecidos para os parâmetros ContentType, Headers ou WebSession são substituídos pelos cabeçalhos Content do objeto MultipartFormDataContent . Esse recurso foi adicionado no PowerShell 6.0.0.
Tipo: | Object |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | True |
Aceitar carateres universais: | False |
-Certificate
Especifica o certificado de cliente usado para uma solicitação da Web segura. Insira uma variável que contenha um certificado ou um comando ou expressão que obtenha o certificado.
Para localizar um certificado, use Get-PfxCertificate
ou use o Get-ChildItem
cmdlet na unidade Certificado (Cert:
). Se o certificado não for válido ou não tiver autoridade suficiente, o comando falhará.
Tipo: | X509Certificate |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-CertificateThumbprint
Especifica o certificado de chave pública digital (X509) de uma conta de usuário que tem permissão para enviar a solicitação. Insira a impressão digital do certificado.
Os certificados são usados na autenticação baseada em certificado de cliente. Os certificados só podem ser mapeados para contas de usuário locais, não para contas de domínio.
Para ver a impressão digital do certificado, use o Get-Item
comando ou Get-ChildItem
para localizar o certificado no Cert:\CurrentUser\My
.
Nota
Este recurso só é suportado em plataformas de sistema operacional Windows.
Tipo: | String |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-ConnectionTimeoutSeconds
Especifica por quanto tempo a solicitação pode ficar pendente antes de atingir o tempo limite. Insira um valor em segundos. O valor padrão, 0, especifica um tempo limite indefinido.
Uma consulta DNS (Sistema de Nomes de Domínio) pode levar até 15 segundos para retornar ou atingir o tempo limite. Se sua solicitação contiver um nome de host que exija resolução e você definir ConnectionTimeoutSeconds para um valor maior que zero, mas inferior a 15 segundos, pode levar 15 segundos ou mais até que uma WebException seja lançada e sua solicitação atinja o tempo limite.
Esse parâmetro substituiu o parâmetro TimeoutSec no PowerShell 7.4. Você pode usar TimeoutSec como um alias para ConnectionTimeoutSeconds.
Tipo: | Int32 |
Aliases: | TimeoutSec |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-ContentType
Especifica o tipo de conteúdo da solicitação da Web.
Se o valor de ContentType contiver o formato de codificação (como charset
), o cmdlet usará esse formato para codificar o corpo da solicitação da Web. Se o ContentType não especificar um formato de codificação, o formato de codificação padrão será usado. Um exemplo de um ContentType com um formato de codificação é text/plain; charset=iso-8859-5
, que especifica o alfabeto latino/cirílico .
Se esse parâmetro for omitido e o método de solicitação for POST ou PUT, Invoke-WebRequest
definirá o tipo de conteúdo como application/x-www-form-urlencoded
. Caso contrário, o tipo de conteúdo não será especificado na chamada.
ContentType é substituído quando um objeto MultipartFormDataContent é fornecido para Body.
A partir do PowerShell 7.4, se você usar esse parâmetro e o parâmetro Headers para definir o Content-Type
cabeçalho, o valor especificado no parâmetro ContentType será usado.
Tipo: | String |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-Credential
Especifica uma conta de usuário que tem permissão para enviar a solicitação. A predefinição é o utilizador atual.
Digite um nome de usuário, como User01 ou Domain01\User01, ou insira um objeto PSCredential gerado pelo Get-Credential
cmdlet.
A credencial pode ser usada sozinha ou em conjunto com determinadas opções de parâmetros de autenticação . Quando usado sozinho, ele só fornece credenciais para o servidor remoto se o servidor remoto enviar uma solicitação de desafio de autenticação. Quando usadas com opções de autenticação , as credenciais são enviadas explicitamente.
As credenciais são armazenadas em um objeto PSCredential e a senha é armazenada como um SecureString.
Nota
Para obter mais informações sobre a proteção de dados do SecureString , consulte Quão seguro é o SecureString?.
Tipo: | PSCredential |
Position: | Named |
Default value: | Current user |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-CustomMethod
Especifica um método personalizado usado para a solicitação da Web. Isso pode ser usado se o Método de Solicitação exigido pelo ponto de extremidade não for uma opção disponível no Método. Method e CustomMethod não podem ser usados juntos.
Este exemplo faz uma TEST
solicitação HTTP para a API:
Invoke-WebRequest -uri 'https://api.contoso.com/widget/' -CustomMethod 'TEST'
Esse recurso foi adicionado no PowerShell 6.0.0.
Tipo: | String |
Aliases: | CM |
Position: | Named |
Default value: | None |
Necessário: | True |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-DisableKeepAlive
Indica que o cmdlet define o valor KeepAlive no cabeçalho HTTP como False. Por padrão, KeepAlive é True. KeepAlive estabelece uma conexão persistente com o servidor para facilitar as solicitações subsequentes.
Tipo: | SwitchParameter |
Position: | Named |
Default value: | False |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-Form
Converte um dicionário em um multipart/form-data
envio. O formulário não pode ser usado com o corpo.
Se ContentType for usado, ele será ignorado.
As chaves do dicionário são usadas como os nomes dos campos de formulário. Por padrão, os valores de formulário são convertidos em valores de cadeia de caracteres.
Se o valor for um objeto System.IO.FileInfo , o conteúdo do arquivo binário será enviado. O nome do arquivo é enviado como a propriedade filename . O tipo MIME é definido como application/octet-stream
. Get-Item
pode ser usado para simplificar o fornecimento do objeto System.IO.FileInfo .
$Form = @{ resume = Get-Item 'c:\Users\jdoe\Documents\John Doe.pdf' }
Se o valor for um tipo de coleção, como Matrizes ou Listas, o campo for será enviado várias vezes. Os valores da lista são tratados como cadeias de caracteres por padrão. Se o valor for um objeto System.IO.FileInfo , o conteúdo do arquivo binário será enviado. Não há suporte para coleções aninhadas.
$Form = @{ tags = 'Férias', 'Itália', '2017' fotos = Get-ChildItem 'c:\Users\jdoe\Pictures\2017-Italy' }
No exemplo acima, o tags
campo é fornecido três vezes no formulário, uma vez para cada um dos Vacation
, Italy
e 2017
. O pictures
campo também é enviado uma vez para cada arquivo na 2017-Italy
pasta. O conteúdo binário dos arquivos nessa pasta são enviados como os valores.
Esse recurso foi adicionado no PowerShell 6.1.0.
Tipo: | IDictionary |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-Headers
Especifica os cabeçalhos da solicitação da Web. Introduza uma tabela hash ou um dicionário.
Cabeçalhos relacionados ao conteúdo, como Content-Type
são substituídos quando um objeto MultipartFormDataContent é fornecido para Body.
A partir do PowerShell 7.4, se você usar esse parâmetro para definir o cabeçalho e usar o Content-Type
parâmetro ContentType, o valor especificado no parâmetro ContentType será usado.
Tipo: | IDictionary |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-HttpVersion
Especifica a versão HTTP usada para a solicitação. A predefinição é 1.1
.
Os valores válidos são:
- 1.0
- 1.1
- 2.0
- 3.0
Tipo: | Version |
Position: | Named |
Default value: | 1.1 |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-InFile
Obtém o conteúdo da solicitação da Web de um arquivo. Insira um caminho e um nome de arquivo. Se você omitir o caminho, o padrão será o local atual.
Tipo: | String |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-MaximumRedirection
Especifica quantas vezes o PowerShell redireciona uma conexão para um URI (Uniform Resource Identifier) alternativo antes que a conexão falhe. O valor padrão é 5. Um valor de 0 (zero) impede todo o redirecionamento.
Tipo: | Int32 |
Position: | Named |
Default value: | 5 |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-MaximumRetryCount
Especifica quantas vezes o PowerShell tenta novamente uma conexão quando um código de falha entre 400 e 599, inclusive ou 304 é recebido. Consulte também o parâmetro RetryIntervalSec para especificar o intervalo entre as tentativas.
Tipo: | Int32 |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-Method
Especifica o método usado para a solicitação da Web. Os valores aceitáveis para este parâmetro são:
Default
Delete
Get
Head
Merge
Options
Patch
Post
Put
Trace
O parâmetro CustomMethod pode ser usado para métodos de solicitação não listados acima.
Tipo: | WebRequestMethod |
Valores aceites: | Default, Get, Head, Post, Put, Delete, Trace, Options, Merge, Patch |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-NoProxy
Indica que o cmdlet não deve usar um proxy para chegar ao destino. Quando você precisar ignorar o proxy configurado no ambiente, use essa opção. Esse recurso foi adicionado no PowerShell 6.0.0.
Tipo: | SwitchParameter |
Position: | Named |
Default value: | False |
Necessário: | True |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-OperationTimeoutSeconds
Esse tempo limite se aplica a leituras de dados dentro de um fluxo, não ao tempo de fluxo como um todo. O valor padrão, 0, especifica um tempo limite indefinido.
Definir o valor para 30 segundos significa que qualquer atraso superior a 30 segundos entre os dados no fluxo encerra a solicitação. Um arquivo grande que leva vários minutos para ser baixado não será encerrado, a menos que o fluxo fique parado por mais de 30 segundos.
Tipo: | Int32 |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-OutFile
Por padrão, Invoke-WebRequest
retorna os resultados para o pipeline. Quando você usa o parâmetro OutFile , os resultados são salvos no arquivo especificado e não retornados ao pipeline. Insira um caminho e um nome de arquivo. Para enviar os resultados para um arquivo e para o pipeline, adicione o parâmetro PassThru .
Se você omitir o caminho, o padrão será o local atual. O nome é tratado como um caminho literal.
Os nomes que contenham parênteses ([]
) devem ser colocados entre aspas simples ('
).
A partir do PowerShell 7.4, você pode especificar um caminho de pasta sem o nome do arquivo. Quando você fizer isso, o comando usará o nome do arquivo do último segmento do URI resolvido após quaisquer redirecionamentos. Quando você especifica um caminho de pasta para OutFile, não pode usar o parâmetro Resume .
Tipo: | String |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-PassThru
Indica que o cmdlet retorna os resultados, além de gravá-los em um arquivo. Esse parâmetro é válido somente quando o parâmetro OutFile também é usado no comando.
Nota
Quando você usa o parâmetro PassThru , a saída é gravada no pipeline, mas o arquivo não é criado. Isso é corrigido no PowerShell 7.5-preview.4. Para obter mais informações, consulte Problema do PowerShell #15409.
Tipo: | SwitchParameter |
Position: | Named |
Default value: | False |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-PreserveAuthorizationOnRedirect
Indica que o cmdlet deve preservar o Authorization
cabeçalho, quando presente, nos redirecionamentos.
Por padrão, o cmdlet remove o Authorization
cabeçalho antes de redirecionar. A especificação desse parâmetro desabilita essa lógica para casos em que o cabeçalho precisa ser enviado para o local de redirecionamento.
Esse recurso foi adicionado no PowerShell 6.0.0.
Tipo: | SwitchParameter |
Position: | Named |
Default value: | False |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-PreserveHttpMethodOnRedirect
Indica que o cmdlet deve preservar o método da solicitação entre redirecionamentos.
Por padrão, o cmdlet altera o método para GET
quando redirecionado. A especificação desse parâmetro desabilita essa lógica para garantir que o método pretendido possa ser usado com redirecionamento.
Esse recurso foi adicionado no PowerShell 7.4.
Tipo: | SwitchParameter |
Position: | Named |
Default value: | False |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-Proxy
Especifica um servidor proxy para a solicitação, em vez de se conectar diretamente ao recurso da Internet. Insira o URI de um servidor proxy de rede.
Tipo: | Uri |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-ProxyCredential
Especifica uma conta de usuário que tem permissão para usar o servidor proxy especificado pelo parâmetro Proxy . A predefinição é o utilizador atual.
Digite um nome de usuário, como User01
ou Domain01\User01
, ou insira um objeto PSCredential , como um Get-Credential
gerado pelo cmdlet.
Esse parâmetro é válido somente quando o parâmetro Proxy também é usado no comando. Não é possível usar os parâmetros ProxyCredential e ProxyUseDefaultCredentials no mesmo comando.
Tipo: | PSCredential |
Position: | Named |
Default value: | Current user |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-ProxyUseDefaultCredentials
Indica que o cmdlet usa as credenciais do usuário atual para acessar o servidor proxy especificado pelo parâmetro Proxy .
Esse parâmetro é válido somente quando o parâmetro Proxy também é usado no comando. Não é possível usar os parâmetros ProxyCredential e ProxyUseDefaultCredentials no mesmo comando.
Tipo: | SwitchParameter |
Position: | Named |
Default value: | False |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-Resume
Executa uma tentativa de melhor esforço para retomar o download de um arquivo parcial. Resume requer OutFile.
O Resume opera apenas no tamanho do arquivo local e do arquivo remoto e não executa nenhuma outra validação de que o arquivo local e o arquivo remoto são os mesmos.
Se o tamanho do arquivo local for menor do que o tamanho do arquivo remoto, o cmdlet tentará retomar o download do arquivo e anexar os bytes restantes ao final do arquivo.
Se o tamanho do arquivo local for o mesmo que o tamanho do arquivo remoto, nenhuma ação será executada e o cmdlet assumirá que o download já foi concluído.
Se o tamanho do arquivo local for maior do que o tamanho do arquivo remoto, o arquivo local será substituído e todo o arquivo remoto será baixado novamente. Esse comportamento é o mesmo que usar OutFile sem retomar.
Se o servidor remoto não suportar a retomada do download, o arquivo local será substituído e todo o arquivo remoto será baixado novamente. Esse comportamento é o mesmo que usar OutFile sem retomar.
Se o arquivo local não existir, o arquivo local será criado e todo o arquivo remoto será baixado. Esse comportamento é o mesmo que usar OutFile sem retomar.
Esse recurso foi adicionado no PowerShell 6.1.0.
Tipo: | SwitchParameter |
Position: | Named |
Default value: | False |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-RetryIntervalSec
Especifica o intervalo entre novas tentativas para a conexão quando um código de falha entre 400 e 599, inclusive ou 304 é recebido. Consulte também o parâmetro MaximumRetryCount para especificar o número de tentativas. O valor deve estar entre 1
e [int]::MaxValue
.
Quando o código de falha é 429 e a resposta inclui a propriedade Retry-After em seus cabeçalhos, o cmdlet usa esse valor para o intervalo de repetição, mesmo que esse parâmetro seja especificado.
Tipo: | Int32 |
Position: | Named |
Default value: | 5 |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-SessionVariable
Especifica uma variável para a qual esse cmdlet cria uma sessão de solicitação da Web e a salva no valor.
Insira um nome de variável sem o símbolo do cifrão ($
).
Quando você especifica uma variável de sessão, Invoke-WebRequest
cria um objeto de sessão de solicitação da Web e o atribui a uma variável com o nome especificado em sua sessão do PowerShell. Você pode usar a variável em sua sessão assim que o comando for concluído.
Antes do PowerShell 7.4, a sessão de solicitação da Web não era uma conexão persistente. É um objeto que contém informações sobre a conexão e a solicitação, incluindo cookies, credenciais, o valor máximo de redirecionamento e a cadeia de caracteres do agente do usuário. Você pode usá-lo para compartilhar estado e dados entre solicitações da Web.
A partir do PowerShell 7.4, a sessão de solicitação da Web é persistente, desde que as propriedades da sessão não sejam substituídas em uma solicitação subsequente. Quando são, o cmdlet recria a sessão com os novos valores. As sessões persistentes reduzem a sobrecarga para solicitações repetidas, tornando-as muito mais rápidas.
Para usar a sessão de solicitação da Web em solicitações da Web subsequentes, especifique a variável de sessão no valor do parâmetro WebSession . O PowerShell usa os dados no objeto de sessão de solicitação da Web ao estabelecer a nova conexão. Para substituir um valor na sessão de solicitação da Web, use um parâmetro de cmdlet, como UserAgent ou Credential. Os valores dos parâmetros têm precedência sobre os valores na sessão de solicitação da Web.
Não é possível usar os parâmetros SessionVariable e WebSession no mesmo comando.
Tipo: | String |
Aliases: | SV |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-SkipCertificateCheck
Ignora as verificações de validação do certificado. Isso inclui todas as validações, como expiração, revogação, autoridade raiz confiável, etc.
Aviso
O uso desse parâmetro não é seguro e não é recomendado. Esta opção destina-se apenas a ser usada contra hosts conhecidos usando um certificado autoassinado para fins de teste. Use por sua conta e risco.
Esse recurso foi adicionado no PowerShell 6.0.0.
Tipo: | SwitchParameter |
Position: | Named |
Default value: | False |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-SkipHeaderValidation
Indica que o cmdlet deve adicionar cabeçalhos à solicitação sem validação.
Essa opção deve ser usada para sites que exigem valores de cabeçalho que não estão em conformidade com os padrões. A especificação dessa opção desativa a validação para permitir que o valor seja passado desmarcado. Quando especificado, todos os cabeçalhos são adicionados sem validação.
Essa opção desabilita a validação para valores passados para os parâmetros ContentType, Headers e UserAgent .
Esse recurso foi adicionado no PowerShell 6.0.0.
Tipo: | SwitchParameter |
Position: | Named |
Default value: | False |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-SkipHttpErrorCheck
Esse parâmetro faz com que o cmdlet ignore os status de erro HTTP e continue a processar respostas. As respostas de erro são gravadas no pipeline como se tivessem sido bem-sucedidas.
Esse parâmetro foi introduzido no PowerShell 7.
Tipo: | SwitchParameter |
Position: | Named |
Default value: | False |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-SslProtocol
Define os protocolos SSL/TLS permitidos para a solicitação da Web. Por padrão, todos os protocolos SSL/TLS suportados pelo sistema são permitidos. SslProtocol permite limitar a protocolos específicos para fins de conformidade.
Esses valores são definidos como uma enumeração baseada em sinalizador. Você pode combinar vários valores juntos para definir vários sinalizadores usando esse parâmetro. Os valores podem ser passados para o parâmetro SslProtocol como uma matriz de valores ou como uma cadeia de caracteres separada por vírgulas desses valores. O cmdlet combina os valores usando uma operação binary-OR. Passar valores como uma matriz é a opção mais simples e também permite que você use o preenchimento de tabulação nos valores. Talvez não seja possível definir várias opções em todas as plataformas.
Nota
Em plataformas que não sejam Windows, pode não ser possível fornecer Tls
ou Tls12
como opção. O suporte para Tls13
não está disponível em todos os sistemas operacionais e precisará ser verificado por sistema operacional.
Esse recurso foi adicionado no PowerShell 6.0.0 e o suporte para Tls13
foi adicionado no PowerShell 7.1.
Tipo: | WebSslProtocol |
Valores aceites: | Default, Tls, Tls11, Tls12 |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-Token
O token OAuth ou Bearer a ser incluído na solicitação. O token é exigido por determinadas opções de autenticação . Não pode ser usado de forma independente.
O token leva um SecureString
contendo o token. Para fornecer o token manualmente, use o seguinte:
Invoke-WebRequest -Uri $uri -Authentication OAuth -Token (Read-Host -AsSecureString)
Esse parâmetro foi introduzido no PowerShell 6.0.
Tipo: | SecureString |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-TransferEncoding
Especifica um valor para o cabeçalho de resposta HTTP de codificação de transferência. Os valores aceitáveis para este parâmetro são:
Chunked
Compress
Deflate
GZip
Identity
Tipo: | String |
Valores aceites: | chunked, compress, deflate, gzip, identity |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-UnixSocket
Especifica o nome do soquete Unix ao qual se conectar. Este parâmetro é suportado em sistemas baseados em Unix e Windows versão 1803 e posterior. Para obter mais informações sobre o suporte do Windows para soquetes Unix, consulte a postagem do blog Interoperabilidade Windows/WSL com AF_UNIX .
Esse parâmetro foi adicionado no PowerShell 7.4.
Tipo: | UnixDomainSocketEndPoint |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-Uri
Especifica o URI (Uniform Resource Identifier) do recurso da Internet para o qual a solicitação da Web é enviada. Insira um URI. Este parâmetro suporta apenas HTTP ou HTTPS.
Este parâmetro é obrigatório. O nome do parâmetro Uri é opcional.
Tipo: | Uri |
Position: | 0 |
Default value: | None |
Necessário: | True |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-UseBasicParsing
Este parâmetro foi preterido. A partir do PowerShell 6.0.0, todas as solicitações da Web usam apenas análise básica. Esse parâmetro é incluído apenas para compatibilidade com versões anteriores e qualquer uso dele não tem efeito sobre a operação do cmdlet.
Tipo: | SwitchParameter |
Position: | Named |
Default value: | False |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-UseDefaultCredentials
Indica que o cmdlet usa as credenciais do usuário atual para enviar a solicitação da Web. Isso não pode ser usado com Autenticação ou Credencial e pode não ser suportado em todas as plataformas.
Tipo: | SwitchParameter |
Position: | Named |
Default value: | False |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-UserAgent
Especifica uma cadeia de caracteres de agente do usuário para a solicitação da Web.
O agente de usuário padrão é semelhante a Mozilla/5.0 (Windows NT 10.0; Microsoft Windows 10.0.15063; en-US) PowerShell/6.0.0
com pequenas variações para cada sistema operacional e plataforma.
Para testar um site com a cadeia de caracteres padrão do agente do usuário usada pela maioria dos navegadores da Internet, use as propriedades da classe PSUserAgent , como Chrome, FireFox, InternetExplorer, Opera e Safari.
Por exemplo, o comando a seguir usa a cadeia de caracteres do agente do usuário para o Internet Explorer: Invoke-WebRequest -Uri https://website.com/ -UserAgent ([Microsoft.PowerShell.Commands.PSUserAgent]::InternetExplorer)
Tipo: | String |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-WebSession
Especifica uma sessão de solicitação da Web. Insira o nome da variável, incluindo o cifrão ($
).
Para substituir um valor na sessão de solicitação da Web, use um parâmetro de cmdlet, como UserAgent ou Credential. Os valores dos parâmetros têm precedência sobre os valores na sessão de solicitação da Web. Cabeçalhos relacionados ao conteúdo, como Content-Type
, também são substituídos quando um objeto MultipartFormDataContent é fornecido para Body.
Ao contrário de uma sessão remota, a sessão de solicitação da Web não é uma conexão persistente. É um objeto que contém informações sobre a conexão e a solicitação, incluindo cookies, credenciais, o valor máximo de redirecionamento e a cadeia de caracteres do agente do usuário. Você pode usá-lo para compartilhar estado e dados entre solicitações da Web.
Para criar uma sessão de solicitação da Web, insira um nome de variável, sem cifrão, no valor do parâmetro SessionVariable de um Invoke-WebRequest
comando. Invoke-WebRequest
cria a sessão e salva-a na variável. Em comandos subsequentes, use a variável como o valor do parâmetro WebSession .
Não é possível usar os parâmetros SessionVariable e WebSession no mesmo comando.
Tipo: | WebRequestSession |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
Entradas
Você pode canalizar o corpo de uma solicitação da Web para esse cmdlet.
Saídas
Este cmdlet retorna o objeto de resposta que representa o resultado da solicitação da Web.
Notas
O PowerShell inclui os seguintes aliases para Invoke-WebRequest
:
- Todas as plataformas:
iwr
A partir do PowerShell 6.0.0 Invoke-WebRequest
oferece suporte apenas à análise básica.
Para obter mais informações, consulte BasicHtmlWebResponseObject.
Devido a alterações no .NET Core 3.1, o PowerShell 7.0 e superior usam a propriedade HttpClient.DefaultProxy para determinar a configuração do proxy.
O valor desta propriedade é determinado pela sua plataforma:
- Para Windows: Lê a configuração de proxy a partir de variáveis de ambiente. Se essas variáveis não forem definidas, a propriedade será derivada das configurações de proxy do usuário.
- Para macOS: Lê a configuração de proxy a partir de variáveis de ambiente. Se essas variáveis não forem definidas, a propriedade será derivada das configurações de proxy do sistema.
- Para Linux: Lê a configuração de proxy a partir de variáveis de ambiente. Se essas variáveis não forem definidas, a propriedade inicializa uma instância não configurada que ignora todos os endereços.
As variáveis de ambiente usadas para DefaultProxy
inicialização em plataformas baseadas em Windows e Unix são:
HTTP_PROXY
: o nome do host ou endereço IP do servidor proxy usado em solicitações HTTP.HTTPS_PROXY
: o nome do host ou endereço IP do servidor proxy usado em solicitações HTTPS.ALL_PROXY
: o nome do host ou endereço IP do servidor proxy usado em solicitações HTTP e HTTPS no casoHTTP_PROXY
HTTPS_PROXY
ou não estão definidos.NO_PROXY
: uma lista separada por vírgulas de nomes de host que devem ser excluídos do proxy.
O PowerShell 7.4 adicionou suporte para o algoritmo de compactação Brotli.