Invoke-RestMethod
Odešle požadavek HTTP nebo HTTPS do webové služby RESTful.
Syntaxe
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
Rutina Invoke-RestMethod
odesílá požadavky HTTP a HTTPS do webových služeb REPRESENTATIONAL State Transfer (REST), které vracejí bohatě strukturovaná data.
PowerShell formátuje odpověď na základě datového typu. V případě informačního kanálu RSS nebo ATOM vrátí PowerShell uzly XML položky nebo položky. V případě zápisu javascriptového objektu (JSON) nebo XML převede PowerShell nebo deserializuje obsah na [PSCustomObject]
objekty.
Poznámka:
Když koncový bod REST vrátí více objektů, objekty se přijímají jako pole. Pokud předáte výstup z Invoke-RestMethod
jiného příkazu, odešle se jako jeden [Object[]]
objekt. Obsah tohoto pole se nevypíše pro další příkaz v kanálu.
Tato rutina je zavedena ve Windows PowerShellu 3.0.
Počínaje PowerShellem 7.0 Invoke-RestMethod
podporuje konfiguraci proxy serveru definovanou proměnnými prostředí. Viz část Poznámky tohoto článku.
Počínaje PowerShellem 7.4 je kódování znaků pro požadavky ve výchozím nastavení nastaveno na UTF-8 místo ASCII. Pokud potřebujete jiné kódování, musíte nastavit charset
atribut v Content-Type
hlavičce.
Příklady
Příklad 1: Získání informačního kanálu RSS PowerShellu
Tento příklad používá rutinu Invoke-RestMethod
k získání informací z informačního kanálu RSS blogu PowerShellu. Příkaz používá rutinu Format-Table
k zobrazení hodnot vlastností Title a pubDate každého blogu v tabulce.
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
Příklad 2: Spuštění požadavku POST
V tomto příkladu uživatel spustí Invoke-RestMethod
požadavek POST na intranetovém webu v organizaci uživatele.
$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
Zobrazí se výzva k zadání přihlašovacích údajů a pak je uložena v $Cred
adrese URL, která bude přístup definována v $Url
.
Proměnná $Body
popisuje kritéria hledání, určuje sdílený svazek clusteru jako výstupní režim a určuje časové období pro vrácená data, která začínají před dvěma dny a končí před jedním dnem. Proměnná těla určuje hodnoty parametrů, které se vztahují na konkrétní rozhraní REST API, se kterým Invoke-RestMethod
komunikuje.
Příkaz Invoke-RestMethod
se spustí se všemi proměnnými a zadá cestu a název souboru výsledného výstupního souboru CSV.
Příklad 3: Sledování relačních odkazů
Některá rozhraní REST API podporují stránkování prostřednictvím relačních odkazů na RFC5988. Místo analýzy hlavičky pro získání adresy URL pro další stránku můžete tuto rutinu provést za vás. Tento příklad vrátí první dvě stránky problémů z úložiště GitHub PowerShellu.
$url = 'https://api.github.com/repos/powershell/powershell/issues'
Invoke-RestMethod $url -FollowRelLink -MaximumFollowRelLink 2
Příklad 4: Zjednodušené odeslání více částí nebo dat formuláře
Některá rozhraní API vyžadují multipart/form-data
odeslání k nahrání souborů a smíšeného obsahu. Tento příklad ukazuje, jak aktualizovat profil uživatele.
$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
Formulář profilu vyžaduje tato pole: firstName
, lastName
, email
, avatar
birthday
a hobbies
. Rozhraní API očekává, že obrázek obrázku profilu uživatele se do pole zadá avatar
. Rozhraní API také přijme více hobbies
položek, které se mají odeslat ve stejném formuláři.
Při vytváření $Form
HashTable se názvy klíčů používají jako názvy polí formuláře. Ve výchozím nastavení se hodnoty HashTable převedou na řetězce. System.IO.FileInfo
Pokud je hodnota k dispozici, obsah souboru se odešle. Pokud existuje kolekce, jako jsou pole nebo seznamy, bude pole formuláře odesláno několikrát.
Get-Item
Pomocí klíče avatar
FileInfo
se objekt nastaví jako hodnota. Výsledkem je, že se odesílají data jdoe.png
obrázku.
Když do klíče zadáte seznam hobbies
, hobbies
bude pole k dispozici v odesláních jednou pro každou položku seznamu.
Příklad 5: Předání více hlaviček
Rozhraní API často vyžadují předané hlavičky pro ověřování nebo ověření. Tento příklad ukazuje, jak předat více hlaviček z hash-table
rozhraní REST API.
$headers = @{
'userId' = 'UserIDValue'
'token' = 'TokenValue'
}
Invoke-RestMethod -Uri $uri -Method Post -Headers $headers -Body $body
Příklad 6: Vytvoření výčtu vrácených položek v kanálu
GitHub vrátí více objektů pole. Pokud výstup předáte do jiného příkazu, odešle se jako jeden [Object[]]
objekt.
Pokud chcete vytvořit výčet objektů do kanálu, předáte výsledky do Write-Output
závorek nebo rutinu zabalíte do závorek. Následující příklad spočítá počet objektů vrácených GitHubem. Potom spočítá počet objektů výčtu kanálu.
$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
Příklad 7: Přeskočení ověření hlavičky
Ve výchozím nastavení Invoke-RestMethod
rutina ověřuje hodnoty známých hlaviček, které mají formát hodnot definovaných standardy. Následující příklad ukazuje, jak toto ověření může vyvolat chybu a jak můžete použít parametr SkipHeaderValidation , abyste se vyhnuli ověřování hodnot pro koncové body, které tolerovat neplatné formátované hodnoty.
$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 je služba, která vrací informace o webových požadavcích a odpovědích na řešení potíží. Proměnná $Uri
se přiřadí koncovému /headers
bodu služby, který vrátí hlavičky požadavku jako obsah v odpovědi.
Hlavička If-Match
požadavku je definována v dokumentu RFC-7232 oddílu 3.1 a vyžaduje, aby byla hodnota pro tuto hlavičku definována s okolními uvozovkami. Proměnná $InvalidHeaders
má přiřazenou tabulku hash, kde je hodnota If-Match
neplatná, protože je definována jako 12345
místo "12345"
.
Volání Invoke-RestMethod
s neplatnými záhlavími vrátí chybovou zprávu, že formátovaná hodnota je neplatná. Požadavek se do koncového bodu neodesílají.
Volání Invoke-RestMethod
s parametrem SkipHeaderValidation ignoruje chybu ověření a odešle požadavek do koncového bodu. Vzhledem k tomu, že koncový bod tolerovat nekompatibilní hodnoty hlaviček, vrátí rutina objekt odpovědi bez chyby.
Příklad 8: Odeslání požadavku pomocí HTTP 2.0
Tento příklad dotazů na problém s GitHubem pomocí protokolu HTTP 2.0.
$uri = 'https://api.github.com/repos/microsoftdocs/powershell-docs/issues'
Invoke-RestMethod -Uri $uri -HttpVersion 2.0 -SkipCertificateCheck
Příklad 9: Odeslání požadavku do aplikace soketu Unix
Některé aplikace, jako je Docker, zveřejňují soket Unixu pro komunikaci. Tento příklad dotazuje seznam imagí Dockeru pomocí rozhraní API Dockeru. Rutina se připojí k démonu Dockeru pomocí soketu Unix.
Invoke-RestMethod -Uri "http://localhost/v1.40/images/json/" -UnixSocket "/var/run/docker.sock"
Parametry
-AllowInsecureRedirect
Umožňuje přesměrování z HTTPS na HTTP. Ve výchozím nastavení všechny požadavky přesměrované z HTTPS na HTTP způsobí chybu a požadavek se přeruší, aby se zabránilo neúmyslné komunikaci ve formátu prostého textu přes nešifrovaná připojení. Pokud chcete toto chování přepsat na vlastní riziko, použijte parametr AllowInsecureRedirect .
Tento parametr byl přidán v PowerShellu 7.4.
Typ: | SwitchParameter |
Position: | Named |
Default value: | False |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-AllowUnencryptedAuthentication
Umožňuje odesílání přihlašovacích údajů a tajných kódů přes nešifrovaná připojení. Ve výchozím nastavení zadání přihlašovacích údajů nebo jakékoli možnosti ověřování pomocí identifikátoru URI , který nezačíná https://
, způsobí chybu a požadavek se přeruší, aby se zabránilo neúmyslné komunikaci tajných kódů v prostém textu přes nešifrovaná připojení. Pokud chcete toto chování přepsat na vlastní riziko, zadejte parametr AllowUnencryptedAuthentication .
Upozorňující
Použití tohoto parametru není bezpečné a nedoporučuje se. Poskytuje se pouze kvůli kompatibilitě se staršími systémy, které nemohou poskytovat šifrovaná připojení. Používejte na vlastní nebezpečí.
Tato funkce byla přidána v PowerShellu 6.0.0.
Typ: | SwitchParameter |
Position: | Named |
Default value: | False |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Authentication
Určuje explicitní typ ověřování, který se má použít pro požadavek. Výchozí hodnota je Žádná. Parametr ověřování nelze použít s parametrem UseDefaultCredentials .
Dostupné možnosti ověřování:
None
: Toto je výchozí možnost, pokud není zadáno ověřování . Nebude použito žádné explicitní ověřování.Basic
: Vyžaduje přihlašovací údaje. Přihlašovací údaje se použijí k odeslání hlavičky základníhobase64(user:password)
ověřováníAuthorization: Basic
RFC 7617 ve formátu .Bearer
: Vyžaduje parametr Token . Odešle hlavičku RFC 6750Authorization: Bearer
se zadaným tokenem.OAuth
: Vyžaduje parametr Token . Odešle hlavičku RFC 6750Authorization: Bearer
se zadaným tokenem.
Zadávání ověřování přepíše všechna Authorization
záhlaví zadaná do hlaviček nebo zahrnutá ve službě WebSession.
Tato funkce byla přidána v PowerShellu 6.0.0.
Typ: | WebAuthenticationType |
Přípustné hodnoty: | None, Basic, Bearer, OAuth |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Body
Určuje text požadavku. Text je obsah požadavku, který následuje za hlavičkami.
Můžete také roušit hodnotu těla do Invoke-RestMethod
.
Parametr Body lze použít k zadání seznamu parametrů dotazu nebo k určení obsahu odpovědi. Pro parametry dotazu používá rutina metodu Metody System.Net.WebUtility.UrlEncode ke kódování párů klíč-hodnota. Další informace o kódovacích řetězcích pro adresy URL najdete v referenčních informacích k metodě UrlEncode().
Pokud je vstupem požadavek POST a text je Řetězec, hodnota vlevo od prvního znaménka rovná se (=
) se nastaví jako klíč v datech formuláře a zbývající text se nastaví jako hodnota. Chcete-li zadat více klíčů, použijte pro text objekt IDictionary, například tabulku hash.
Když je vstupem požadavek GET a tělo je IDictionary (obvykle hashovací tabulka), tělo se přidá do identifikátoru URI jako parametry dotazu. U jiných typů požadavků (například PATCH) se text nastaví jako hodnota textu požadavku ve standardním name=value
formátu s hodnotami zakódovanými adresou URL.
Pokud je vstup System.Xml.XmlNode objekt a deklarace XML určuje kódování, toto kódování se používá pro data v požadavku, pokud není přepsán parametrem ContentType.
Pokud je tělo formulářem nebo výstupem jiného Invoke-WebRequest
volání, PowerShell nastaví obsah požadavku na pole formuláře.
Parametr Body může také přijmout System.Net.Http.MultipartFormDataContent objektu. To usnadní multipart/form-data
žádosti. Při MultipartFormDataContent objektu je zadána body, všechny hlavičky související s obsahem zadané contentType, Headers nebo WebSession parametry budou přepsány hlavičkami obsahu objektuMultipartFormDataContent
. Tato funkce byla přidána v PowerShellu 6.0.0.
Typ: | Object |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | True |
Přijmout zástupné znaky: | False |
-Certificate
Určuje klientský certifikát, který se používá pro zabezpečený webový požadavek. Zadejte proměnnou obsahující certifikát nebo příkaz nebo výraz, který certifikát získá.
Pokud chcete najít certifikát, použijte Get-PfxCertificate
nebo použijte rutinu Get-ChildItem
na jednotce Certificate (Cert:
). Pokud certifikát není platný nebo nemá dostatečnou autoritu, příkaz selže.
Typ: | X509Certificate |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-CertificateThumbprint
Určuje certifikát digitálního veřejného klíče (X509) uživatelského účtu, který má oprávnění k odeslání žádosti. Zadejte kryptografický otisk certifikátu.
Certifikáty se používají při ověřování na základě klientských certifikátů. Certifikáty lze mapovat pouze na místní uživatelské účty, nikoli účty domény.
Pokud chcete zobrazit kryptografický otisk certifikátu, použijte Get-Item
příkaz nebo Get-ChildItem
vyhledejte certifikát v Cert:\CurrentUser\My
souboru .
Poznámka:
Tato funkce se v současné době podporuje jenom na platformách operačního systému Windows.
Typ: | String |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-ConnectionTimeoutSeconds
Určuje, jak dlouho může požadavek čekat, než vyprší časový limit. Zadejte hodnotu v sekundách. Výchozí hodnota 0 určuje neomezený časový limit.
Vrácení nebo vypršení časového limitu dotazu DNS (Domain Name System) může trvat až 15 sekund. Pokud váš požadavek obsahuje název hostitele, který vyžaduje překlad, a nastavíte ConnectionTimeoutSeconds na hodnotu větší než nula, ale méně než 15 sekund, může trvat 15 sekund nebo déle, než se vyvolá výjimka WebException a vyprší časový limit požadavku.
Tento parametr nahradil parametr TimeoutSec v PowerShellu 7.4. TimeoutSec můžete použít jako alias pro ConnectionTimeoutSeconds.
Typ: | Int32 |
Aliasy: | TimeoutSec |
Position: | Named |
Default value: | 0 |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-ContentType
Určuje typ obsahu webového požadavku.
Pokud hodnota ContentType obsahuje formát kódování (as charset
), rutina tento formát použije k kódování textu webového požadavku. Pokud ContentType nezadá formát kódování, použije se místo toho výchozí formát kódování. Příkladem ContentType s formátem kódování je text/plain; charset=iso-8859-5
, který určuje latinku nebo cyrilickou abecedu.
Pokud tento parametr vynecháte a metoda požadavku je POST, Invoke-RestMethod
nastaví typ obsahu na application/x-www-form-urlencoded
. V opačném případě není ve volání zadán typ obsahu.
ContentType se přepíše při zadání objektu MultipartFormDataContent
pro body.
Počínaje PowerShellem 7.4 použijete tento parametr i parametr Headers k definování Content-Type
hlavičky, použije se hodnota zadaná v parametru ContentType.
Typ: | String |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Credential
Určuje uživatelský účet, který má oprávnění k odeslání požadavku. Ve výchozím nastavení je to aktuální uživatel.
Zadejte uživatelské jméno, například User01 nebo Domain01\User01, nebo zadejte objekt PSCredential vygenerovaný rutinouGet-Credential
.
Přihlašovací údaje lze použít samostatně nebo ve spojení s určitými možnostmi parametru ověřování . Když použijete samostatně, poskytne vzdálenému serveru přihlašovací údaje pouze v případě, že vzdálený server odešle požadavek na výzvu ověření. Při použití s možnostmi ověřování se přihlašovací údaje odešlou explicitně.
Přihlašovací údaje jsou uloženy v objektu PSCredential a heslo je uloženo jako SecureString.
Poznámka:
Další informace o ochraně dat SecureString naleznete v tématu Jak zabezpečený je SecureString?.
Typ: | PSCredential |
Position: | Named |
Default value: | Current user |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-CustomMethod
Určuje vlastní metodu použitou pro webový požadavek. To lze použít s metodou požadavku požadovanou koncovým bodem není k dispozici v metodě. Metodu a CustomMethod nelze použít společně.
Příklad:
Invoke-RestMethod -uri 'https://api.contoso.com/widget/' -CustomMethod 'TEST'
Tím se do rozhraní API vytvoří TEST
požadavek HTTP.
Tato funkce byla přidána v PowerShellu 6.0.0.
Typ: | String |
Aliasy: | CM |
Position: | Named |
Default value: | None |
Vyžadováno: | True |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-DisableKeepAlive
Označuje, že rutina nastaví hodnotu KeepAlive v hlavičce HTTP na False. KeepAlive má ve výchozím nastavení hodnotu True. KeepAlive vytvoří trvalé připojení k serveru, aby se usnadnily následné požadavky.
Typ: | SwitchParameter |
Position: | Named |
Default value: | False |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-FollowRelLink
Označuje, že rutina by měla postupovat podle relačních odkazů.
Některá rozhraní REST API podporují stránkování prostřednictvím relačních odkazů na RFC5988. Místo analýzy hlavičky pro získání adresy URL pro další stránku můžete tuto rutinu provést za vás. Chcete-li nastavit, kolikrát chcete sledovat relační odkazy, použijte parametr MaximumFollowRelLink .
Při použití tohoto přepínače vrátí rutina kolekci stránek výsledků. Každá stránka výsledků může obsahovat více položek výsledků.
Tato funkce byla přidána v PowerShellu 6.0.0.
Typ: | SwitchParameter |
Aliasy: | FL |
Position: | Named |
Default value: | False |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Form
Převede slovník na multipart/form-data
odeslání. Formulář nelze použít s textem.
Pokud bude typ obsahu ignorován.
Klíče slovníku se použijí jako názvy polí formuláře. Ve výchozím nastavení se hodnoty formuláře převedou na řetězcové hodnoty.
Pokud je hodnota System.IO.FileInfo objekt, pak se odešle obsah binárního souboru.
Název souboru bude odeslán jako filename
. MIME se nastaví jako application/octet-stream
. Get-Item
lze použít ke zjednodušení poskytování System.IO.FileInfo objektu.
$Form = @{ resume = Get-Item 'c:\Users\jdoe\Documents\John Doe.pdf' }
Pokud je hodnota typu kolekce, například Pole nebo Seznam, bude pole pro pole odesláno několikrát. Hodnoty seznamu budou ve výchozím nastavení považovány za řetězce. Pokud je hodnota System.IO.FileInfo objekt, pak se odešle obsah binárního souboru. Vnořené kolekce nejsou podporované.
$Form = @{ tags = 'Vacation', 'Italy', '2017' pictures = Get-ChildItem 'c:\Users\jdoe\Pictures\2017-Italy' }
V předchozím příkladu tags
bude pole zadáno třikrát ve formuláři, jednou pro každý z Vacation
, Italy
a 2017
. Pole pictures
se také odešle jednou pro každý soubor ve 2017-Italy
složce. Binární obsah souborů v této složce se odešle jako hodnoty.
Tato funkce byla přidána v PowerShellu 6.1.0.
Typ: | IDictionary |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Headers
Určuje hlavičky webového požadavku. Zadejte tabulku hash nebo slovník.
Hlavičky související s obsahem, například Content-Type
jsou přepsány při zadání objektu MultipartFormDataContent
pro Body.
Pokud tento parametr použijete k definování hlavičky a použití parametru Content-Type
ContentType, použijete-li tento parametr v PowerShellu 7.4, použije se hodnota zadaná v parametru ContentType.
Typ: | IDictionary |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-HttpVersion
Určuje verzi HTTP použitou pro požadavek. Výchozí hodnota je 1.1
.
Platné hodnoty jsou:
- 1.0
- 1,1
- 2.0
- 3,0
Typ: | Version |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-InFile
Získá obsah webového požadavku ze souboru.
Zadejte cestu a název souboru. Pokud cestu vynecháte, výchozí je aktuální umístění.
Typ: | String |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-MaximumFollowRelLink
Určuje, kolikrát se má sledovat relační odkazy, pokud se používá FollowRelLink . Pokud rozhraní REST API omezuje příliš mnoho požadavků, může být potřeba menší hodnota. Výchozí hodnota je [Int32]::MaxValue
. Hodnota 0 (nula) zabraňuje následujícím relačním propojením.
Typ: | Int32 |
Aliasy: | ML |
Position: | Named |
Default value: | Int32.MaxValue |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-MaximumRedirection
Určuje, kolikrát PowerShell přesměruje připojení na alternativní identifikátor URI (Uniform Resource Identifier), než se připojení nezdaří. Výchozí hodnota je 5. Hodnota 0 (nula) zabraňuje veškerému přesměrování.
Typ: | Int32 |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-MaximumRetryCount
Určuje, kolikrát PowerShell opakuje připojení, když se obdrží kód selhání mezi 400 a 599 (včetně) nebo 304. Viz také parametr RetryIntervalSec pro určení intervalu mezi opakováními.
Typ: | Int32 |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Method
Určuje metodu použitou pro webový požadavek. Tento parametr přijímá tyto hodnoty:
Default
Delete
Get
Head
Merge
Options
Patch
Post
Put
Trace
Parametr CustomMethod lze použít pro metody požadavku, které nejsou uvedeny výše.
Typ: | WebRequestMethod |
Přípustné hodnoty: | Default, Get, Head, Post, Put, Delete, Trace, Options, Merge, Patch |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-NoProxy
Označuje, že rutina k dosažení cíle nepoužije proxy server.
Pokud potřebujete obejít proxy server nakonfigurovaný v Aplikaci Internet Explorer nebo proxy server zadaný v prostředí, použijte tento přepínač.
Tento parametr byl představen v PowerShellu 6.0.
Typ: | SwitchParameter |
Position: | Named |
Default value: | False |
Vyžadováno: | True |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-OperationTimeoutSeconds
Tento časový limit platí pro čtení dat v rámci datového proudu, ne pro čas datového proudu jako celek. Výchozí hodnota 0 určuje neomezený časový limit.
Nastavení hodnoty na 30 sekund znamená, že požadavek ukončí jakékoli zpoždění delší než 30 sekund mezi daty v datovém proudu. Velký soubor, který trvá několik minut ke stažení, se neukončí, pokud stream po dobu delší než 30 sekund zastaví.
Typ: | Int32 |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-OutFile
Ve výchozím nastavení Invoke-RestMethod
vrátí výsledky do kanálu. Pokud použijete parametr OutFile , výsledky se uloží do zadaného souboru a nevrátí se do kanálu. Zadejte cestu a název souboru. Pokud chcete výsledky odeslat do souboru a do kanálu, přidejte parametr PassThru .
Pokud cestu vynecháte, výchozí je aktuální umístění. Název se považuje za cestu literálu.
Názvy obsahující hranaté závorky ([]
) musí být uzavřeny v jednoduchých uvozovkách ('
).
Počínaje PowerShellem 7.4 můžete zadat cestu ke složce bez názvu souboru. Když to uděláte, příkaz použije název souboru z posledního segmentu vyřešeného identifikátoru URI po jakýchkoli přesměrováních. Když zadáte cestu ke složce pro OutFile, nemůžete použít parametr Resume .
Typ: | String |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-PassThru
Tento parametr je platný pouze v případě, že se v příkazu používá také parametr OutFile . Záměrem je zapsat výsledky do souboru a do kanálu.
Poznámka:
Když použijete parametr PassThru , výstup se zapíše do kanálu, ale soubor se nevytvořil. Toto je opravené v PowerShellu 7.5-preview.4. Další informace najdete v tématu Problém PowerShellu č. 15409.
Typ: | SwitchParameter |
Position: | Named |
Default value: | No output |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-PreserveAuthorizationOnRedirect
Označuje, že rutina by měla zachovat hlavičku Authorization
( pokud je k dispozici) napříč přesměrováními.
Rutina ve výchozím nastavení před přesměrováním Authorization
záhlaví odstraní. Zadání tohoto parametru zakáže tuto logiku pro případy, kdy se hlavička musí odeslat do umístění přesměrování.
Tato funkce byla přidána v PowerShellu 6.0.0.
Typ: | SwitchParameter |
Position: | Named |
Default value: | False |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-PreserveHttpMethodOnRedirect
Označuje, že rutina by měla zachovat metodu požadavku napříč přesměrováními.
Rutina ve výchozím nastavení změní metodu na GET
při přesměrování. Zadáním tohoto parametru zakážete tuto logiku, aby se zajistilo, že se zamýšlená metoda dá použít s přesměrováním.
Tato funkce byla přidána v PowerShellu 7.4.
Typ: | SwitchParameter |
Position: | Named |
Default value: | False |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Proxy
Místo přímého připojení k internetovému prostředku používá proxy server pro požadavek. Zadejte identifikátor URI (Uniform Resource Identifier) serveru proxy sítě.
Tato funkce byla přidána v PowerShellu 6.0.0.
Typ: | Uri |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-ProxyCredential
Určuje uživatelský účet, který má oprávnění používat proxy server určený parametrem Proxy . Ve výchozím nastavení je to aktuální uživatel.
Zadejte uživatelské jméno, například User01 nebo Domain01\User01, User@Domain.Comnebo zadejte PSCredential
objekt, například objekt vygenerovaný rutinou Get-Credential
.
Tento parametr je platný pouze v případě, že se v příkazu používá také parametr Proxy . Ve stejném příkazu nemůžete použít parametry ProxyCredential a ProxyUseDefaultCredentials .
Typ: | PSCredential |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-ProxyUseDefaultCredentials
Označuje, že rutina používá přihlašovací údaje aktuálního uživatele pro přístup k proxy serveru určenému parametrem proxy .
Tento parametr je platný pouze v případě, že se v příkazu používá také parametr Proxy . Ve stejném příkazu nemůžete použít parametry ProxyCredential a ProxyUseDefaultCredentials .
Typ: | SwitchParameter |
Position: | Named |
Default value: | False |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-ResponseHeadersVariable
Vytvoří proměnnou obsahující slovník hlavičky odpovědi. Zadejte název proměnné bez symbolu dolaru ($
). Klíče slovníku obsahují názvy polí a hodnoty hlavičky odpovědi vrácené webovým serverem.
Tato funkce byla přidána v PowerShellu 6.0.0.
Typ: | String |
Aliasy: | RHV |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Resume
Provede pokus o obnovení stahování částečného souboru. Parametr Resume vyžaduje parametr OutFile .
Resume funguje jenom s velikostí místního souboru a vzdáleného souboru a neprovádí žádné další ověření, že místní soubor a vzdálený soubor jsou stejné.
Pokud je velikost místního souboru menší než velikost vzdáleného souboru, pokusí se rutina obnovit stahování souboru a připojit zbývající bajty na konec souboru.
Pokud je velikost místního souboru stejná jako vzdálená velikost souboru, pak se neprovedou žádné akce a rutina předpokládá, že stahování už bylo dokončeno.
Pokud je velikost místního souboru větší než velikost vzdáleného souboru, místní soubor se přepíše a celý vzdálený soubor se úplně znovu stáhne. Toto chování je stejné jako použití outfile bez obnovení.
Pokud vzdálený server nepodporuje obnovení stahování, místní soubor se přepíše a celý vzdálený soubor se úplně znovu stáhne. Toto chování je stejné jako použití outfile bez obnovení.
Pokud místní soubor neexistuje, vytvoří se místní soubor a celý vzdálený soubor se stáhne. Toto chování je stejné jako použití outfile bez obnovení.
Tato funkce byla přidána v PowerShellu 6.1.0.
Typ: | SwitchParameter |
Position: | Named |
Default value: | False |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-RetryIntervalSec
Určuje interval mezi opakovanými pokusy o připojení, když se obdrží kód chyby mezi 400 a 599 včetně nebo 304. Hodnota musí být mezi 1
a [int]::MaxValue
.
Pokud je kód chyby 429 a odpověď obsahuje do hlaviček vlastnost Retry-After , rutina použije tuto hodnotu pro interval opakování, i když je tento parametr zadán.
Podívejte se také na parametr MaximumRetryCount pro určení počtu opakování.
Typ: | Int32 |
Position: | Named |
Default value: | 5 |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-SessionVariable
Vytvoří proměnnou obsahující relaci webového požadavku. Zadejte název proměnné bez symbolu dolaru ($
).
Když zadáte proměnnou relace, Invoke-RestMethod
vytvoří objekt relace webového požadavku a přiřadí ho proměnné se zadaným názvem v relaci PowerShellu. Proměnnou v relaci můžete použít hned po dokončení příkazu.
Před PowerShellem 7.4 není relace webového požadavku trvalým připojením. Jedná se o objekt, který obsahuje informace o připojení a požadavku, včetně souborů cookie, přihlašovacích údajů, maximální hodnoty přesměrování a řetězce uživatelského agenta. Můžete ho použít ke sdílení stavu a dat mezi webovými požadavky.
Počínaje PowerShellem 7.4 je relace webového požadavku trvalá, pokud se v následném požadavku nepřepíše vlastnosti relace. Když jsou, rutina znovu vytvoří relaci s novými hodnotami. Trvalé relace snižují režijní náklady na opakované požadavky, což je výrazně rychlejší.
Pokud chcete použít relaci webového požadavku v následných webových požadavcích, zadejte proměnnou relace v hodnotě parametru WebSession . PowerShell při navazování nového připojení používá data v objektu relace webového požadavku. Pokud chcete přepsat hodnotu v relaci webového požadavku, použijte parametr rutiny, například UserAgent nebo Credential. Hodnoty parametrů mají přednost před hodnotami v relaci webového požadavku.
Ve stejném příkazu nemůžete použít parametry SessionVariable a WebSession .
Typ: | String |
Aliasy: | SV |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-SkipCertificateCheck
Přeskočí kontroly ověření certifikátu, které zahrnují všechna ověření, jako je vypršení platnosti, odvolání, důvěryhodná kořenová autorita atd.
Upozorňující
Použití tohoto parametru není bezpečné a nedoporučuje se. Tento přepínač je určený pouze pro známé hostitele, kteří používají certifikát podepsaný svým držitelem pro účely testování. Používejte na vlastní nebezpečí.
Tato funkce byla přidána v PowerShellu 6.0.0.
Typ: | SwitchParameter |
Position: | Named |
Default value: | False |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-SkipHeaderValidation
Označuje, že rutina by měla do požadavku přidat hlavičky bez ověření.
Tento přepínač by se měl používat pro weby, které vyžadují hodnoty hlaviček, které nevyhovují standardům. Zadáním tohoto přepínače zakážete ověření, aby se hodnota předala nezaškrtnutou. Po zadání se všechny hlavičky přidají bez ověření.
Tím se zakáže ověřování hodnot předaných parametrům ContentType, Headers a UserAgent .
Tato funkce byla přidána v PowerShellu 6.0.0.
Typ: | SwitchParameter |
Position: | Named |
Default value: | False |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-SkipHttpErrorCheck
Tento parametr způsobí, že rutina ignoruje stavy chyb HTTP a bude dál zpracovávat odpovědi. Odpovědi na chyby se zapíšou do kanálu stejně, jako kdyby byly úspěšné.
Tento parametr byl představen v PowerShellu 7.
Typ: | SwitchParameter |
Position: | Named |
Default value: | False |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-SslProtocol
Nastaví protokoly SSL/TLS, které jsou pro webový požadavek přípustné. Ve výchozím nastavení jsou povolené protokoly SSL/TLS podporované systémem. SslProtocol umožňuje omezit na konkrétní protokoly pro účely dodržování předpisů.
Tyto hodnoty jsou definovány jako výčet založený na příznaku. Pomocí tohoto parametru můžete zkombinovat více hodnot a nastavit více příznaků. Hodnoty lze předat parametru SslProtocol jako pole hodnot nebo jako řetězec oddělený čárkami těchto hodnot. Rutina zkombinuje hodnoty pomocí binární operace OR. Předání hodnot jako pole je nejjednodušší možností a také umožňuje použít pro hodnoty dokončování tabulátoru. Možná nebudete moct zadat více hodnot na všech platformách.
Poznámka:
Na jiných platformách než Windows nemusí být možné poskytovat Tls
ani Tls12
jako možnost. Tls13
Podpora není k dispozici ve všech operačních systémech a bude nutné ji ověřit na základě jednotlivých operačních systémů.
Tato funkce byla přidána v PowerShellu 6.0.0 a byla přidána podpora pro Tls13
PowerShell 7.1.
Typ: | WebSslProtocol |
Přípustné hodnoty: | Default, Tls, Tls11, Tls12, Tls13 |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-StatusCodeVariable
Vytvoří proměnnou obsahující výsledek stavového kódu HTTP požadavku. Zadejte název proměnné bez symbolu dolaru ($
).
Parametr může identifikovat zprávy o úspěchu nebo chybové zprávy při použití s parametrem SkipHttpErrorCheck .
Zadejte název proměnné parametru jako řetězec, například -StatusCodeVariable "scv"
.
Tento parametr byl představen v PowerShellu 7.
Typ: | String |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Token
Token OAuth nebo Bearer, který se má zahrnout do požadavku. Token je vyžadován určitými možnostmi ověřování . Nejde ho používat nezávisle.
Token přebírá SecureString
token obsahující token. Pokud chcete token zadat, použijte ručně následující:
Invoke-RestMethod -Uri $uri -Authentication OAuth -Token (Read-Host -AsSecureString)
Tento parametr byl představen v PowerShellu 6.0.
Typ: | SecureString |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-TransferEncoding
Určuje hodnotu hlavičky odpovědi HTTP kódování přenosu. Tento parametr přijímá tyto hodnoty:
- Blokového
- Komprimovat
- Vyfouknout
- GZip
- Identita
Typ: | String |
Přípustné hodnoty: | chunked, compress, deflate, gzip, identity |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-UnixSocket
Určuje název soketu Unix, ke kterému se má připojit. Tento parametr je podporován v systémech Unix a Windows verze 1803 a novějších. Další informace o podpoře soketů unixových systémů Windows naleznete v blogovém příspěvku windows/WSL s AF_UNIX .
Tento parametr byl přidán v PowerShellu 7.4.
Typ: | UnixDomainSocketEndPoint |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Uri
Určuje identifikátor URI (Uniform Resource Identifier) internetového prostředku, do kterého se odešle webový požadavek. Tento parametr podporuje hodnoty HTTP, HTTPS, FTP a FILE.
Tento parametr je povinný. Název parametru (Uri) je volitelný.
Typ: | Uri |
Position: | 0 |
Default value: | None |
Vyžadováno: | True |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-UseBasicParsing
Tento parametr je zastaralý. Počínaje PowerShellem 6.0.0 používají všechny webové požadavky pouze základní analýzu. Tento parametr je součástí pouze zpětné kompatibility a použití nebude mít žádný vliv na provoz rutiny.
Typ: | SwitchParameter |
Position: | Named |
Default value: | False |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-UseDefaultCredentials
Označuje, že rutina používá přihlašovací údaje aktuálního uživatele k odeslání webové žádosti. Tuto možnost nelze použít s ověřováním nebo přihlašovacími údaji a nemusí být podporována na všech platformách.
Typ: | SwitchParameter |
Position: | Named |
Default value: | False |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-UserAgent
Určuje řetězec uživatelského agenta pro webový požadavek.
Výchozí uživatelský agent je podobný Mozilla/5.0 (Windows NT 10.0; Microsoft Windows 10.0.15063; en-US) PowerShell/6.0.0
mírným změnám pro každý operační systém a platformu.
K otestování webu se standardním řetězcem uživatelského agenta, který používá většina internetových prohlížečů, použijte vlastnosti třídy PSUserAgent , jako je Chrome, FireFox, InternetExplorer, Opera a Safari.
Typ: | String |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-WebSession
Určuje relaci webové žádosti. Zadejte název proměnné včetně znaku dolaru ($
).
Pokud chcete přepsat hodnotu v relaci webového požadavku, použijte parametr rutiny, například UserAgent nebo Credential. Hodnoty parametrů mají přednost před hodnotami v relaci webového požadavku. Hlavičky související s obsahem, například Content-Type
, budou také přepsány při multipartFormDataContent objektu pro Body.
Na rozdíl od vzdálené relace není relace webového požadavku trvalým připojením. Jedná se o objekt, který obsahuje informace o připojení a požadavku, včetně souborů cookie, přihlašovacích údajů, maximální hodnoty přesměrování a řetězce uživatelského agenta. Můžete ho použít ke sdílení stavu a dat mezi webovými požadavky.
Pokud chcete vytvořit relaci webového požadavku, zadejte název proměnné bez znaku dolaru do hodnoty parametru Invoke-RestMethod
SessionVariable příkazu. Invoke-RestMethod
vytvoří relaci a uloží ji do proměnné. V dalších příkazech použijte proměnnou jako hodnotu parametru WebSession .
Ve stejném příkazu nemůžete použít parametry SessionVariable a WebSession .
Typ: | WebRequestSession |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
Vstupy
Do této rutiny můžete převést text webového požadavku.
Výstupy
Když požadavek vrátí celé číslo, vrátí tato rutina toto celé číslo.
Když požadavek vrátí řetězec, vrátí tato rutina tento řetězec.
Když požadavek vrátí platný kód XML, tato rutina ji vrátí jako XmlDocument.
PSObject
Když požadavek vrátí řetězce JSON, vrátí tato rutina objekt PSObject představující data.
Poznámky
PowerShell obsahuje následující aliasy pro Invoke-RestMethod
:
- Všechny platformy:
irm
Některé funkce nemusí být dostupné na všech platformách.
Kvůli změnám v .NET Core 3.1 používá PowerShell 7.0 a vyšší vlastnost HttpClient.DefaultProxy k určení konfigurace proxy serveru.
Hodnota této vlastnosti je různá pravidla v závislosti na vaší platformě:
- Pro Windows: Načte konfiguraci proxy serveru z proměnných prostředí nebo pokud nejsou definovány, z nastavení proxy serveru uživatele.
- Pro macOS: Načte konfiguraci proxy serveru z proměnných prostředí nebo pokud nejsou definovány, z nastavení proxy serveru systému.
- Pro Linux: Načte konfiguraci proxy serveru z proměnných prostředí nebo v případě, že nejsou definovány, tato vlastnost inicializuje nekonfigurovanou instanci, která obchází všechny adresy.
Proměnné prostředí používané k DefaultProxy
inicializaci na platformách se systémem Windows a Unix jsou:
HTTP_PROXY
: název hostitele nebo IP adresa proxy serveru používaného u požadavků HTTP.HTTPS_PROXY
: název hostitele nebo IP adresa proxy serveru používaného u požadavků HTTPS.ALL_PROXY
: název hostitele nebo IP adresa proxy serveru používaného v požadavcích HTTP a HTTPS v případěHTTP_PROXY
, žeHTTPS_PROXY
nejsou definovány.NO_PROXY
: Čárkami oddělený seznam názvů hostitelů, které by měly být vyloučeny z proxy serveru.
PowerShell 7.4 přidal podporu pro algoritmus komprese Brotli.