Invoke-RestMethod
Envia uma solicitação HTTP ou HTTPS para um serviço Web RESTful.
Sintaxe
Invoke-RestMethod
[-FollowRelLink]
[-MaximumFollowRelLink <Int32>]
[-ResponseHeadersVariable <String>]
[-StatusCodeVariable <String>]
[-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-RestMethod
[-FollowRelLink]
[-MaximumFollowRelLink <Int32>]
[-ResponseHeadersVariable <String>]
[-StatusCodeVariable <String>]
[-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-RestMethod
[-FollowRelLink]
[-MaximumFollowRelLink <Int32>]
[-ResponseHeadersVariable <String>]
[-StatusCodeVariable <String>]
[-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-RestMethod
[-FollowRelLink]
[-MaximumFollowRelLink <Int32>]
[-ResponseHeadersVariable <String>]
[-StatusCodeVariable <String>]
[-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-RestMethod
cmdlet envia solicitações HTTP e HTTPS para serviços Web REST (Representational State Transfer) que retornam dados ricamente estruturados.
O PowerShell formata a resposta com base no tipo de dados. Para um feed RSS ou ATOM, o PowerShell retorna os nós XML Item ou Entry. Para JSON (JavaScript Object Notation) ou XML, o PowerShell converte ou desserializa o conteúdo em [PSCustomObject]
objetos.
Observação
Quando o ponto de extremidade REST retorna vários objetos, os objetos são recebidos como uma matriz. Se você canalizar a saída para Invoke-RestMethod
outro comando, ela será enviada como um único [Object[]]
objeto. O conteúdo dessa matriz não é enumerado para o próximo comando no pipeline.
Este cmdlet é introduzido no Windows PowerShell 3.0.
A partir do PowerShell 7.0, Invoke-RestMethod
dá suporte à configuração de proxy definida por variáveis de ambiente. Consulte a seção Notas deste artigo.
A partir do PowerShell 7.4, a codificação de caracteres para solicitações é padronizada para UTF-8 em vez de ASCII. Se você precisar de uma codificação diferente, deverá definir o charset
atributo no Content-Type
cabeçalho.
Exemplos
Exemplo 1: Obter o feed RSS do PowerShell
Este exemplo usa o Invoke-RestMethod
cmdlet para obter informações do feed RSS do Blog do PowerShell. O comando usa o Format-Table
cmdlet para exibir os valores das propriedades Title e pubDate de cada blog em uma tabela.
Invoke-RestMethod -Uri https://blogs.msdn.microsoft.com/powershell/feed/ |
Format-Table -Property Title, pubDate
Title pubDate
----- -------
Join the PowerShell 10th Anniversary Celebration! Tue, 08 Nov 2016 23:00:04 +0000
DSC Resource Kit November 2016 Release Thu, 03 Nov 2016 00:19:07 +0000
PSScriptAnalyzer Community Call - Oct 18, 2016 Thu, 13 Oct 2016 17:52:35 +0000
New Home for In-Box DSC Resources Sat, 08 Oct 2016 07:13:10 +0000
New Social Features on Gallery Fri, 30 Sep 2016 23:04:34 +0000
PowerShellGet and PackageManagement in PowerShell Gallery and GitHub Thu, 29 Sep 2016 22:21:42 +0000
PowerShell Security at DerbyCon Wed, 28 Sep 2016 01:13:19 +0000
DSC Resource Kit September Release Thu, 22 Sep 2016 00:25:37 +0000
PowerShell DSC and implicit remoting broken in KB3176934 Tue, 23 Aug 2016 15:07:50 +0000
PowerShell on Linux and Open Source! Thu, 18 Aug 2016 15:32:02 +0000
Exemplo 2: Executar uma solicitação POST
Neste exemplo, um usuário é executado Invoke-RestMethod
para fazer uma solicitação POST em um site de intranet na organização do usuário.
$Cred = Get-Credential
$Url = "https://server.contoso.com:8089/services/search/jobs/export"
$Body = @{
search = "search index=_internal | reverse | table index,host,source,sourcetype,_raw"
output_mode = "csv"
earliest_time = "-2d@d"
latest_time = "-1d@d"
}
Invoke-RestMethod -Method 'Post' -Uri $url -Credential $Cred -Body $body -OutFile output.csv
As credenciais são solicitadas e, em seguida, armazenadas e $Cred
a URL que será acessada é definida em $Url
.
A $Body
variável descreve os critérios de pesquisa, especifica CSV como o modo de saída e especifica um período de tempo para os dados retornados que começa há dois dias e termina há um dia. A variável body especifica valores para parâmetros que se aplicam à API REST específica com a qual Invoke-RestMethod
está se comunicando.
O Invoke-RestMethod
comando é executado com todas as variáveis no lugar, especificando um caminho e um nome de arquivo para o arquivo de saída CSV resultante.
Exemplo 3: Seguir links de relação
Algumas APIs REST dão suporte à paginação por meio de Links de Relação por RFC5988. Em vez de analisar o cabeçalho para obter a URL da próxima página, você pode fazer com que o cmdlet faça isso por você. Este exemplo retorna as duas primeiras páginas de problemas do repositório GitHub do PowerShell.
$url = 'https://api.github.com/repos/powershell/powershell/issues'
Invoke-RestMethod $url -FollowRelLink -MaximumFollowRelLink 2
Exemplo 4: Envio simplificado de dados de formulário/multipart
Algumas APIs exigem multipart/form-data
envios para fazer upload de arquivos e conteúdo misto. Este exemplo demonstra como atualizar o perfil de um 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-RestMethod -Uri $Uri -Method Post -Form $Form
O formulário de perfil requer estes campos: firstName
, lastName
, email
, birthday
avatar
, , e hobbies
. A API está esperando que uma imagem para a foto do perfil do usuário seja fornecida no avatar
campo. A API também aceitará várias hobbies
entradas a serem enviadas no mesmo formulário.
Ao criar o $Form
HashTable, os nomes das chaves são usados como nomes de campo de formulário. Por padrão, os valores do HashTable serão convertidos em cadeias de caracteres. Se um System.IO.FileInfo
valor estiver presente, o conteúdo do arquivo será enviado. Se uma coleção como matrizes ou listas estiver presente, o campo do formulário será enviado várias vezes.
Usando Get-Item
a avatar
chave, o FileInfo
objeto será definido como o valor. O resultado é que os dados jdoe.png
da imagem serão enviados.
Ao fornecer uma lista para a hobbies
chave, o hobbies
campo estará presente nos envios uma vez para cada item da lista.
Exemplo 5: Passar vários cabeçalhos
As APIs geralmente exigem cabeçalhos passados para autenticação ou validação. Este exemplo demonstra como passar vários cabeçalhos de uma hash-table
API REST para uma API.
$headers = @{
'userId' = 'UserIDValue'
'token' = 'TokenValue'
}
Invoke-RestMethod -Uri $uri -Method Post -Headers $headers -Body $body
Exemplo 6: enumerar itens retornados no pipeline
O GitHub retorna vários objetos em uma matriz. Se você canalizar a saída para outro comando, ela será enviada como um único [Object[]]
objeto.
Para enumerar os objetos no pipeline, canalize os resultados ou Write-Output
encapsule o cmdlet entre parênteses. O exemplo a seguir conta o número de objetos retornados pelo GitHub. Em seguida, conta o número de objetos enumerados para o pipeline.
$uri = 'https://api.github.com/repos/microsoftdocs/powershell-docs/issues'
$x = 0
Invoke-RestMethod -Uri $uri | ForEach-Object { $x++ }
$x
1
$x = 0
(Invoke-RestMethod -Uri $uri) | ForEach-Object { $x++ }
$x
30
$x = 0
Invoke-RestMethod -Uri $uri | Write-Output | ForEach-Object { $x++ }
$x
30
Exemplo 7: ignorando a validação de cabeçalho
Por padrão, o cmdlet valida Invoke-RestMethod
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 a validação de valores para pontos de extremidade que toleram valores formatados inválidamente.
$Uri = 'https://httpbin.org/headers'
$InvalidHeaders = @{
'If-Match' = '12345'
}
Invoke-RestMethod -Uri $Uri -Headers $InvalidHeaders
Invoke-RestMethod -Uri $Uri -Headers $InvalidHeaders -SkipHeaderValidation |
Format-List
Invoke-RestMethod: The format of value '12345' is invalid.
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=Root=1-62f150a6-27754fd4226f31b43a3d2874}
httpbin.org é um serviço que retorna informações sobre solicitações e respostas da Web para solução de problemas. A $Uri
variável é atribuída ao /headers
endpoint 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 em que o valor de If-Match
é inválido porque é definido como 12345
em vez de "12345"
.
Chamar Invoke-RestMethod
com os cabeçalhos inválidos retorna um erro relatando que o valor formatado é inválido. A solicitação não é enviada para o ponto de extremidade.
Chamar Invoke-RestMethod
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 8: Enviar uma solicitação usando HTTP 2.0
Este exemplo consulta o problema do GitHub usando o protocolo HTTP 2.0.
$uri = 'https://api.github.com/repos/microsoftdocs/powershell-docs/issues'
Invoke-RestMethod -Uri $uri -HttpVersion 2.0 -SkipCertificateCheck
Exemplo 9: 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-RestMethod -Uri "http://localhost/v1.40/images/json/" -UnixSocket "/var/run/docker.sock"
Parâmetros
-AllowInsecureRedirect
Permite o redirecionamento de HTTPS para HTTP. Por padrão, qualquer solicitação redirecionada de HTTPS para HTTP resulta em um erro e a solicitação é anulada para impedir a comunicação involuntária em texto simples 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 |
Cargo: | Named |
Valor padrão: | False |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-AllowUnencryptedAuthentication
Permite o envio de credenciais e segredos por meio de conexões não criptografadas. Por padrão, fornecer Credencial ou qualquer opção de Autenticação com um Uri que não comece resultará https://
em um erro e a solicitação será anulada 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 |
Cargo: | Named |
Valor padrão: | False |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Authentication
Especifica o tipo de autenticação explícito 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 será usada.Basic
: Requer credencial. As credenciais serão usadas para enviar um cabeçalho de autenticaçãoAuthorization: Basic
básica RFC 7617 no formato .base64(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 todos Authorization
os cabeçalhos fornecidos aos cabeçalhos ou incluídos na WebSession.
Esse recurso foi adicionado no PowerShell 6.0.0.
Tipo: | WebAuthenticationType |
Valores aceitos: | None, Basic, Bearer, OAuth |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | 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-RestMethod
.
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 System.Net.WebUtility.UrlEncode para codificar os pares chave-valor. Para obter mais informações sobre a codificação de 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 é uma solicitação GET e o corpo é um IDictionary (normalmente, uma tabela de 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 em 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 .
Quando o corpo é um formulário ou é a saída de outra Invoke-WebRequest
chamada, o PowerShell define o conteúdo da solicitação como os campos do formulário.
O parâmetro Body também pode aceitar um objeto System.Net.Http.MultipartFormDataContent . Isso facilitará multipart/form-data
as solicitações. Quando um objeto MultipartFormDataContent é fornecido para Body, todos os cabeçalhos relacionados ao conteúdo fornecidos para os parâmetros ContentType, Headers ou WebSession serão substituídos pelos cabeçalhos de conteúdo do MultipartFormDataContent
objeto. Esse recurso foi adicionado no PowerShell 6.0.0.
Tipo: | Object |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | True |
Aceitar caracteres curinga: | False |
-Certificate
Especifica o certificado do cliente que é usado para uma solicitação da Web segura. Insira uma variável que contém um certificado, comando ou expressão que obtém os objetos.
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 |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-CertificateThumbprint
Especifica o certificado de chave pública digital (X509) de uma conta de usuário com permissão para executar essa solicitação. Insira a impressão digital do certificado.
Certificados digitais são empregados na autenticação de clientes baseada em certificados. Os certificados só podem ser mapeados apenas 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 em Cert:\CurrentUser\My
.
Observação
Atualmente, esse recurso é compatível apenas com plataformas de sistema operacional Windows.
Tipo: | String |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | 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 como um valor maior que zero, mas menor que 15 segundos, poderá levar 15 segundos ou mais antes 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 |
Cargo: | Named |
Valor padrão: | 0 |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | 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, Invoke-RestMethod
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 será substituído quando um MultipartFormDataContent
objeto for 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 |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Credential
Especifica uma conta de usuário com permissão para enviar a solicitação. O padrão é o usuário 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âmetro de autenticação . Quando usado sozinho, ele só fornecerá credenciais ao servidor remoto se o servidor remoto enviar uma solicitação de desafio de autenticação. Quando usado com opções de autenticação , as credenciais serão enviadas explicitamente.
As credenciais são armazenadas em um objeto PSCredential e a senha é armazenada como um SecureString.
Observação
Para obter mais informações sobre a proteção de dados do SecureString , consulte Quão seguro é o SecureString?.
Tipo: | PSCredential |
Cargo: | Named |
Valor padrão: | Current user |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-CustomMethod
Especifica o método personalizado usado para a solicitação da Web. Isso pode ser usado com o método de solicitação exigido pelo ponto de extremidade não é uma opção disponível no método. Method e CustomMethod não podem ser usados juntos.
Exemplo:
Invoke-RestMethod -uri 'https://api.contoso.com/widget/' -CustomMethod 'TEST'
Isso faz uma TEST
solicitação HTTP para a API.
Esse recurso foi adicionado no PowerShell 6.0.0.
Tipo: | String |
Aliases: | CM |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | True |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | 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 |
Cargo: | Named |
Valor padrão: | False |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-FollowRelLink
Indica que o cmdlet deve seguir links de relação.
Algumas APIs REST dão suporte à paginação por meio de Links de Relação por RFC5988. Em vez de analisar o cabeçalho para obter a URL da próxima página, você pode fazer com que o cmdlet faça isso por você. Para definir quantas vezes seguir links de relação, use o parâmetro MaximumFollowRelLink .
Ao usar essa opção, o cmdlet retorna uma coleção de páginas de resultados. Cada página de resultados pode conter vários itens de resultado.
Esse recurso foi adicionado no PowerShell 6.0.0.
Tipo: | SwitchParameter |
Aliases: | FL |
Cargo: | Named |
Valor padrão: | False |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | 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 será ignorado.
As chaves do dicionário serão usadas como nomes de campos de formulário. Por padrão, os valores de formulário serã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 será enviado como .filename
O MIME será 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 uma Matriz ou Lista, o campo for será enviado várias vezes. Os valores da lista serão tratados como strings 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' pictures = Get-ChildItem 'c:\Users\jdoe\Pictures\2017-Italy' }
No exemplo acima, o tags
campo será fornecido três vezes no formulário, uma vez para cada um de Vacation
, Italy
, e 2017
. O pictures
campo também será enviado uma vez para cada arquivo na 2017-Italy
pasta. O conteúdo binário dos arquivos nessa pasta será enviado como os valores.
Esse recurso foi adicionado no PowerShell 6.1.0.
Tipo: | IDictionary |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Headers
Especifica os cabeçalhos da solicitação da Web. Insira uma tabela de hash ou dicionário.
Cabeçalhos relacionados ao conteúdo, como Content-Type
são substituídos quando um MultipartFormDataContent
objeto é 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 |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-HttpVersion
Especifica a versão HTTP usada para a solicitação. O padrão é 1.1
.
Os valores válidos são:
- 1.0
- 1,1
- 2,0
- 3.0
Tipo: | Version |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-InFile
Obtém o conteúdo da solicitação da Web de um arquivo.
Digite um caminho e nome de arquivo. Se você omitir o caminho, o padrão será o local atual.
Tipo: | String |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-MaximumFollowRelLink
Especifica quantas vezes seguir links de relação se FollowRelLink for usado. Um valor menor pode ser necessário se a API REST for limitada devido a muitas solicitações. O valor padrão é [Int32]::MaxValue
. Um valor de 0 (zero) impede os links de relação a seguir.
Tipo: | Int32 |
Aliases: | ML |
Cargo: | Named |
Valor padrão: | Int32.MaxValue |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | 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 qualquer redirecionamento.
Tipo: | Int32 |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | 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. Além disso, consulte o parâmetro RetryIntervalSec para especificar o número de segundos entre as tentativas.
Tipo: | Int32 |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Method
Especifica o método usado para a solicitação da Web. Os valores aceitáveis para esse 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 aceitos: | Default, Get, Head, Post, Put, Delete, Trace, Options, Merge, Patch |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-NoProxy
Indica que o cmdlet não usará um proxy para chegar ao destino.
Quando você precisar ignorar o proxy configurado no Internet Explorer ou um proxy especificado no ambiente, use essa opção.
Esse parâmetro foi introduzido no PowerShell 6.0.
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | False |
Obrigatório: | True |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-OperationTimeoutSeconds
Esse tempo limite se aplica a leituras de dados em um fluxo, não ao tempo de fluxo como um todo. O valor padrão, 0, especifica um tempo limite indefinido.
Definir o valor como 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 seja interrompido por mais de 30 segundos.
Tipo: | Int32 |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-OutFile
Por padrão, Invoke-RestMethod
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 contêm colchetes ([]
) 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 qualquer redirecionamento. Ao especificar um caminho de pasta para OutFile, você não pode usar o parâmetro Resume .
Tipo: | String |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-PassThru
Esse parâmetro é válido somente quando o parâmetro OutFile também é usado no comando. A intenção é ter os resultados gravados no arquivo e no pipeline.
Observação
Quando você usa o parâmetro PassThru , a saída é gravada no pipeline, mas o arquivo não é criado. Isso foi corrigido no PowerShell 7.5-preview.4. Para obter mais informações, consulte Problema #15409 do PowerShell.
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | No output |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-PreserveAuthorizationOnRedirect
Indica que o cmdlet deve preservar o Authorization
cabeçalho, quando presente, entre redirecionamentos.
Por padrão, o cmdlet remove o Authorization
cabeçalho antes de redirecionar. Especificar esse 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 |
Cargo: | Named |
Valor padrão: | False |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | 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. Especificar esse 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 |
Cargo: | Named |
Valor padrão: | False |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Proxy
Usa um servidor proxy para a solicitação, em vez de se conectar diretamente ao recurso da Internet. Insira o URI (Uniform Resource Identifier) de um servidor proxy de rede.
Esse recurso foi adicionado no PowerShell 6.0.0.
Tipo: | Uri |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-ProxyCredential
Especifica uma conta de usuário que tem permissão para usar o servidor proxy especificado pelo parâmetro Proxy . O padrão é o usuário atual.
Digite um nome de usuário, como User01 ou Domain01\User01, User@Domain.Comou insira um PSCredential
objeto, como um gerado pelo Get-Credential
cmdlet.
Esse parâmetro é válido somente quando o parâmetro Proxy também é usado no comando. Você não pode usar os parâmetros ProxyCredential e ProxyUseDefaultCredentials no mesmo comando.
Tipo: | PSCredential |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | 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. Você não pode usar os parâmetros ProxyCredential e ProxyUseDefaultCredentials no mesmo comando.
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | False |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-ResponseHeadersVariable
Cria uma variável que contém um Dicionário de Cabeçalhos de Resposta. Insira um nome de variável sem o símbolo do cifrão ($
). As chaves do dicionário contêm os nomes de campo e os valores do Cabeçalho de Resposta retornado pelo servidor Web.
Esse recurso foi adicionado no PowerShell 6.0.0.
Tipo: | String |
Aliases: | RHV |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Resume
Executa uma tentativa de melhor esforço para retomar o download de um arquivo parcial. O parâmetro Resume requer o parâmetro 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 iguais.
Se o tamanho do arquivo local for menor que o tamanho do arquivo remoto, o cmdlet tentará retomar o download do arquivo e acrescentar os bytes restantes ao final do arquivo.
Se o tamanho do arquivo local for igual ao tamanho do arquivo remoto, nenhuma ação será executada e o cmdlet pressupõe que o download já foi concluído.
Se o tamanho do arquivo local for maior que o tamanho do arquivo remoto, o arquivo local será substituído e todo o arquivo remoto será completamente baixado novamente. Esse comportamento é o mesmo que usar OutFile sem Resume.
Se o servidor remoto não suportar a retomada do download, o arquivo local será substituído e todo o arquivo remoto será completamente baixado novamente. Esse comportamento é o mesmo que usar OutFile sem Resume.
Se o arquivo local não existir, o arquivo local será criado e todo o arquivo remoto será completamente baixado. Esse comportamento é o mesmo que usar OutFile sem Resume.
Esse recurso foi adicionado no PowerShell 6.1.0.
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | False |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-RetryIntervalSec
Especifica o intervalo entre as tentativas da conexão quando um código de falha entre 400 e 599, inclusive ou 304 é recebido. 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.
Além disso, consulte o parâmetro MaximumRetryCount para especificar o número de novas tentativas.
Tipo: | Int32 |
Cargo: | Named |
Valor padrão: | 5 |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-SessionVariable
Cria uma variável que contém a sessão de solicitação da Web. Insira um nome de variável sem o símbolo do cifrão ($
).
Quando você especifica uma variável de sessão, Invoke-RestMethod
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 na sessão, assim que o comando for concluído.
Antes do PowerShell 7.4, 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 o estado e os 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 estiverem, o cmdlet recriará a sessão com os novos valores. As sessões persistentes reduzem a sobrecarga de 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. Valores de parâmetro têm precedência sobre valores na seção de solicitação da Web.
Você não pode usar os parâmetros SessionVariable e WebSession no mesmo comando.
Tipo: | String |
Aliases: | SV |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-SkipCertificateCheck
Ignora as verificações de validação de certificado que incluem 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. Essa opção só deve ser usada em 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 |
Cargo: | Named |
Valor padrão: | False |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | 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. Especificar essa opção desabilita a validação para permitir que o valor seja passado desmarcado. Quando especificado, todos os cabeçalhos são adicionados sem validação.
Isso desabilitará a validação de valores passados para os parâmetros ContentType, Headers e UserAgent .
Esse recurso foi adicionado no PowerShell 6.0.0.
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | False |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | 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 fossem bem-sucedidas.
Esse parâmetro foi introduzido no PowerShell 7.
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | False |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | 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. O 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 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 combinará os valores usando uma operação OR binária. 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 você não consiga fornecer vários valores em todas as plataformas.
Observação
Em plataformas não 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 foi Tls13
adicionado no PowerShell 7.1.
Tipo: | WebSslProtocol |
Valores aceitos: | Default, Tls, Tls11, Tls12, Tls13 |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-StatusCodeVariable
Cria uma variável que contém um resultado de código de status HTTP da solicitação. Insira um nome de variável sem o símbolo do cifrão ($
).
O parâmetro pode identificar mensagens de êxito ou mensagens de falha quando usado com o parâmetro SkipHttpErrorCheck .
Insira o nome da variável do parâmetro como uma cadeia de caracteres, como -StatusCodeVariable "scv"
.
Esse parâmetro foi introduzido no PowerShell 7.
Tipo: | String |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | 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.
Token recebe um SecureString
que contém o token. Para fornecer o token, use manualmente o seguinte:
Invoke-RestMethod -Uri $uri -Authentication OAuth -Token (Read-Host -AsSecureString)
Esse parâmetro foi introduzido no PowerShell 6.0.
Tipo: | SecureString |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-TransferEncoding
Especifica um valor para o cabeçalho de resposta HTTP de codificação de transferência. Os valores aceitáveis para esse parâmetro são:
- Blocos
- Compress
- Deflacionar
- GZip
- Identidade
Tipo: | String |
Valores aceitos: | chunked, compress, deflate, gzip, identity |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-UnixSocket
Especifica o nome do soquete Unix ao qual se conectar. Esse parâmetro tem suporte em sistemas baseados em Unix e Windows versão 1803 e posterior. Para obter mais informações sobre o suporte do Windows a soquetes Unix, consulte a postagem no blog Interoperabilidade do Windows/WSL com AF_UNIX .
Esse parâmetro foi adicionado no PowerShell 7.4.
Tipo: | UnixDomainSocketEndPoint |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Uri
Especifica o URI (Uniform Resource Identifier) do recurso da Internet para o qual a solicitação da Web é enviada. Esse parâmetro oferece suporte a valores HTTP, HTTPS, FTP e FILE.
Este parâmetro é obrigatório. O nome do parâmetro (Uri) é opcional.
Tipo: | Uri |
Cargo: | 0 |
Valor padrão: | None |
Obrigatório: | True |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-UseBasicParsing
Esse parâmetro foi descontinuado. A partir do PowerShell 6.0.0, todas as solicitações da Web usam apenas a análise básica. Esse parâmetro é incluído apenas para compatibilidade com versões anteriores e qualquer uso dele não terá efeito sobre a operação do cmdlet.
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | False |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | 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 compatível com todas as plataformas.
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | False |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | 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 de agente de usuário padrão usada pela maioria dos navegadores da Internet, use as propriedades da classe PSUserAgent , como Chrome, FireFox, InternetExplorer, Opera e Safari.
Tipo: | String |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | 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. Valores de parâmetro têm precedência sobre valores na seção de solicitação da Web. Cabeçalhos relacionados ao conteúdo, como Content-Type
, também serão substituídos quando um objeto MultipartFormDataContent for 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 o estado e os dados entre solicitações da Web.
Para criar uma sessão de solicitação da Web, insira um nome de variável, sem um cifrão, no valor do parâmetro SessionVariable de um Invoke-RestMethod
comando. Invoke-RestMethod
cria a sessão e a salva na variável. Nos comandos subsequentes, use a variável como o valor do parâmetro WebSession .
Você não pode usar os parâmetros SessionVariable e WebSession no mesmo comando.
Tipo: | WebRequestSession |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
Entradas
Você pode canalizar o corpo de uma solicitação da Web para esse cmdlet.
Saídas
Quando a solicitação retorna um número inteiro, esse cmdlet retorna esse número inteiro.
Quando a solicitação retorna uma cadeia de caracteres, esse cmdlet retorna essa cadeia de caracteres.
Quando a solicitação retorna XML válido, esse cmdlet a retorna como um XmlDocument.
PSObject
Quando a solicitação retorna cadeias de caracteres JSON, esse cmdlet retorna um PSObject que representa os dados.
Observações
O PowerShell inclui os seguintes aliases para Invoke-RestMethod
:
- Todas as plataformas:
irm
Alguns recursos podem não estar disponíveis em todas as plataformas.
Devido às 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 dessa propriedade é regras diferentes dependendo da sua plataforma:
- Para Windows: lê a configuração de proxy a partir de variáveis de ambiente ou, se elas não estiverem definidas, a partir das configurações de proxy do usuário.
- Para macOS: lê a configuração de proxy a partir de variáveis de ambiente ou, se elas não estiverem definidas, a partir das configurações de proxy do sistema.
- Para Linux: lê a configuração de proxy a partir de variáveis de ambiente ou, se elas não estiverem definidas, essa propriedade inicializa uma instância não configurada que ignora todos os endereços.
As variáveis de ambiente usadas para inicialização DefaultProxy
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
ouHTTPS_PROXY
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.