Dela via


Invoke-RestMethod

Skickar en HTTP- eller HTTPS-begäran till en RESTful-webbtjänst.

Syntax

Invoke-RestMethod
      [-Method <WebRequestMethod>]
      [-FollowRelLink]
      [-MaximumFollowRelLink <Int32>]
      [-ResponseHeadersVariable <String>]
      [-UseBasicParsing]
      [-Uri] <Uri>
      [-WebSession <WebRequestSession>]
      [-SessionVariable <String>]
      [-AllowUnencryptedAuthentication]
      [-Authentication <WebAuthenticationType>]
      [-Credential <PSCredential>]
      [-UseDefaultCredentials]
      [-CertificateThumbprint <String>]
      [-Certificate <X509Certificate>]
      [-SkipCertificateCheck]
      [-SslProtocol <WebSslProtocol>]
      [-Token <SecureString>]
      [-UserAgent <String>]
      [-DisableKeepAlive]
      [-TimeoutSec <Int32>]
      [-Headers <IDictionary>]
      [-MaximumRedirection <Int32>]
      [-MaximumRetryCount <Int32>]
      [-RetryIntervalSec <Int32>]
      [-Proxy <Uri>]
      [-ProxyCredential <PSCredential>]
      [-ProxyUseDefaultCredentials]
      [-Body <Object>]
      [-Form <IDictionary>]
      [-ContentType <String>]
      [-TransferEncoding <String>]
      [-InFile <String>]
      [-OutFile <String>]
      [-PassThru]
      [-Resume]
      [-PreserveAuthorizationOnRedirect]
      [-SkipHeaderValidation]
      [<CommonParameters>]
Invoke-RestMethod
      [-Method <WebRequestMethod>]
      [-FollowRelLink]
      [-MaximumFollowRelLink <Int32>]
      [-ResponseHeadersVariable <String>]
      [-UseBasicParsing]
      [-Uri] <Uri>
      [-WebSession <WebRequestSession>]
      [-SessionVariable <String>]
      [-AllowUnencryptedAuthentication]
      [-Authentication <WebAuthenticationType>]
      [-Credential <PSCredential>]
      [-UseDefaultCredentials]
      [-CertificateThumbprint <String>]
      [-Certificate <X509Certificate>]
      [-SkipCertificateCheck]
      [-SslProtocol <WebSslProtocol>]
      [-Token <SecureString>]
      [-UserAgent <String>]
      [-DisableKeepAlive]
      [-TimeoutSec <Int32>]
      [-Headers <IDictionary>]
      [-MaximumRedirection <Int32>]
      [-MaximumRetryCount <Int32>]
      [-RetryIntervalSec <Int32>]
      -NoProxy
      [-Body <Object>]
      [-Form <IDictionary>]
      [-ContentType <String>]
      [-TransferEncoding <String>]
      [-InFile <String>]
      [-OutFile <String>]
      [-PassThru]
      [-Resume]
      [-PreserveAuthorizationOnRedirect]
      [-SkipHeaderValidation]
      [<CommonParameters>]
Invoke-RestMethod
      -CustomMethod <String>
      [-FollowRelLink]
      [-MaximumFollowRelLink <Int32>]
      [-ResponseHeadersVariable <String>]
      [-UseBasicParsing]
      [-Uri] <Uri>
      [-WebSession <WebRequestSession>]
      [-SessionVariable <String>]
      [-AllowUnencryptedAuthentication]
      [-Authentication <WebAuthenticationType>]
      [-Credential <PSCredential>]
      [-UseDefaultCredentials]
      [-CertificateThumbprint <String>]
      [-Certificate <X509Certificate>]
      [-SkipCertificateCheck]
      [-SslProtocol <WebSslProtocol>]
      [-Token <SecureString>]
      [-UserAgent <String>]
      [-DisableKeepAlive]
      [-TimeoutSec <Int32>]
      [-Headers <IDictionary>]
      [-MaximumRedirection <Int32>]
      [-MaximumRetryCount <Int32>]
      [-RetryIntervalSec <Int32>]
      [-Proxy <Uri>]
      [-ProxyCredential <PSCredential>]
      [-ProxyUseDefaultCredentials]
      [-Body <Object>]
      [-Form <IDictionary>]
      [-ContentType <String>]
      [-TransferEncoding <String>]
      [-InFile <String>]
      [-OutFile <String>]
      [-PassThru]
      [-Resume]
      [-PreserveAuthorizationOnRedirect]
      [-SkipHeaderValidation]
      [<CommonParameters>]
Invoke-RestMethod
      -CustomMethod <String>
      [-FollowRelLink]
      [-MaximumFollowRelLink <Int32>]
      [-ResponseHeadersVariable <String>]
      [-UseBasicParsing]
      [-Uri] <Uri>
      [-WebSession <WebRequestSession>]
      [-SessionVariable <String>]
      [-AllowUnencryptedAuthentication]
      [-Authentication <WebAuthenticationType>]
      [-Credential <PSCredential>]
      [-UseDefaultCredentials]
      [-CertificateThumbprint <String>]
      [-Certificate <X509Certificate>]
      [-SkipCertificateCheck]
      [-SslProtocol <WebSslProtocol>]
      [-Token <SecureString>]
      [-UserAgent <String>]
      [-DisableKeepAlive]
      [-TimeoutSec <Int32>]
      [-Headers <IDictionary>]
      [-MaximumRedirection <Int32>]
      [-MaximumRetryCount <Int32>]
      [-RetryIntervalSec <Int32>]
      -NoProxy
      [-Body <Object>]
      [-Form <IDictionary>]
      [-ContentType <String>]
      [-TransferEncoding <String>]
      [-InFile <String>]
      [-OutFile <String>]
      [-PassThru]
      [-Resume]
      [-PreserveAuthorizationOnRedirect]
      [-SkipHeaderValidation]
      [<CommonParameters>]

Description

Cmdleten Invoke-RestMethod skickar HTTP- och HTTPS-begäranden till REST-webbtjänster (Representational State Transfer) som returnerar omfattande strukturerade data.

PowerShell formaterar svaret baserat på datatypen. För en RSS- eller ATOM-feed returnerar PowerShell XML-noderna Item eller Entry. För JavaScript Object Notation (JSON) eller XML konverterar Eller deserialiserar PowerShell innehållet till objekt.

Denna cmdlet introduceras i Windows PowerShell 3.0.

Exempel

Exempel 1: Hämta PowerShell RSS-feed

I det här exemplet används cmdleten Invoke-RestMethod för att hämta information från POWERShell-bloggens RSS-feed. Kommandot använder cmdleten Format-Table för att visa värdena för egenskaperna Rubrik och pubDate för varje blogg i en tabell.

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

Exempel 2: Kör en POST-begäran

I det här exemplet kör Invoke-RestMethod en användare för att göra en POST-begäran på en intranätwebbplats i användarens organisation.

$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

Autentiseringsuppgifterna efterfrågas och lagras sedan i $Cred och url:en som ska kommas åt definieras i $Url.

Variabeln $Body beskriver sökvillkoren, anger CSV som utdataläge och anger en tidsperiod för returnerade data som börjar för två dagar sedan och slutar för en dag sedan. Brödtextvariabeln anger värden för parametrar som gäller för det specifika REST API som Invoke-RestMethod kommunicerar med.

Kommandot Invoke-RestMethod körs med alla variabler på plats och anger en sökväg och ett filnamn för den resulterande CSV-utdatafilen.

Exempel 3: Följ relationslänkar

Vissa REST-API:er stöder sidnumrering via relationslänkar per RFC5988. I stället för att parsa huvudet för att hämta URL:en för nästa sida kan du låta cmdleten göra detta åt dig. Det här exemplet returnerar de två första sidorna med problem från PowerShell GitHub-lagringsplatsen.

$url = 'https://api.github.com/repos/powershell/powershell/issues'
Invoke-RestMethod $url -FollowRelLink -MaximumFollowRelLink 2

Exempel 4: Förenklad överföring av flera delar/formulärdata

Vissa API:er kräver multipart/form-data inlämningar för att ladda upp filer och blandat innehåll. Det här exemplet visar hur du uppdaterar en användares profil.

$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

Profilformuläret kräver följande fält: firstName, lastName, email, avatar, birthdayoch hobbies. API:et förväntar sig att en bild för användarprofilsbilden ska anges i fältet avatar . API:et accepterar också flera hobbies poster som ska skickas i samma formulär.

När du skapar $Form HashTable används nyckelnamnen som formulärfältnamn. Som standard konverteras värdena för HashTable till strängar. Om ett System.IO.FileInfo värde finns skickas filinnehållet. Om det finns en samling som matriser eller listor skickas formulärfältet flera gånger.

Genom att använda Get-Itemavatar nyckeln FileInfo anges objektet som värde. Resultatet är att avbildningsdata för jdoe.png skickas.

Genom att ange en lista till hobbies nyckeln hobbies visas fältet i inlämningarna en gång för varje listobjekt.

Exempel 5: Skicka flera rubriker

API:er kräver ofta skickade huvuden för autentisering eller validering. Det här exemplet visar hur du skickar flera rubriker från en hash-table till ett REST-API.

$headers = @{
    'userId' = 'UserIDValue'
    'token' = 'TokenValue'
}
Invoke-RestMethod -Uri $uri -Method Post -Headers $headers -Body $body

Parametrar

-AllowUnencryptedAuthentication

Tillåter sändning av autentiseringsuppgifter och hemligheter över okrypterade anslutningar. Om du anger autentiseringsalternativet eller autentiseringsalternativet med en URI som inte börjar med https:// resulterar det som standard i ett fel och begäran avbryts för att förhindra oavsiktlig kommunikation av hemligheter i okrypterad text över okrypterade anslutningar. Om du vill åsidosätta det här beteendet på egen risk anger du parametern AllowUnencryptedAuthentication .

Varning

Att använda den här parametern är inte säkert och rekommenderas inte. Den tillhandahålls endast för kompatibilitet med äldre system som inte kan tillhandahålla krypterade anslutningar. Använd på egen risk.

Den här funktionen har lagts till i PowerShell 6.0.0.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Authentication

Anger den explicita autentiseringstyp som ska användas för begäran. Standardvärdet är Ingen. Autentisering kan inte användas med UseDefaultCredentials.

Tillgängliga autentiseringsalternativ:

  • Ingen: Det här är standardalternativet när autentisering inte anges. Ingen explicit autentisering kommer att användas.
  • Grundläggande: Kräver autentiseringsuppgifter. Autentiseringsuppgifterna används för att skicka en RFC 7617 Basic Authentication-rubrik Authorization: Basic i formatet base64(user:password).
  • Bärare: Kräver token. Skickar och RFC 6750-huvudet Authorization: Bearer med den angivna token. Det här är ett alias för OAuth
  • OAuth: Kräver token. Skickar en RFC 6750-rubrik Authorization: Bearer med den angivna token. Det här är ett alias för bearer

Om du anger autentisering åsidosätts alla Authorization rubriker som anges i Rubriker eller som ingår i WebSession.

Den här funktionen har lagts till i PowerShell 6.0.0.

Type:WebAuthenticationType
Accepted values:None, Basic, Bearer, OAuth
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Body

Anger brödtexten för begäran. Brödtexten är innehållet i begäran som följer rubrikerna. Du kan också skicka ett brödtextvärde till Invoke-RestMethod.

Body-parametern kan användas för att ange en lista med frågeparametrar eller ange innehållet i svaret.

När indata är en GET-begäran och brödtexten är en IDictionary (vanligtvis en hashtabell) läggs brödtexten till i URI (Uniform Resource Identifier) som frågeparametrar. För andra typer av begäranden (till exempel POST) anges brödtexten som värdet för begärandetexten i standardformatet name=value.

När brödtexten är ett formulär, eller om det är utdata från ett annat Invoke-WebRequest anrop, anger PowerShell begärandeinnehållet till formulärfälten.

Parametern Body kan också acceptera ett System.Net.Http.MultipartFormDataContent-objekt . Detta underlättar multipart/form-data begäranden. När ett MultipartFormDataContent-objekt tillhandahålls för Brödtext, kommer alla innehållsrelaterade rubriker som tillhandahålls till parametrarna ContentType, Headers eller WebSession att åsidosättas av objektets innehållshuvuden MultipartFormDataContent . Den här funktionen har lagts till i PowerShell 6.0.0.

Type:Object
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Certificate

Anger klientcertifikatet som används för en säker webbbegäran. Ange en variabel som innehåller ett certifikat eller ett kommando eller uttryck som hämtar certifikatet.

Om du vill hitta ett certifikat använder Get-PfxCertificate eller använder du cmdleten Get-ChildItem på certifikatenheten (Cert:). Om certifikatet inte är giltigt eller inte har tillräcklig behörighet misslyckas kommandot.

Type:X509Certificate
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-CertificateThumbprint

Anger det digitala offentliga nyckelcertifikatet (X509) för ett användarkonto som har behörighet att skicka begäran. Ange certifikatets tumavtryck.

Certifikat används i klientcertifikatbaserad autentisering. De kan endast mappas till lokala användarkonton. de fungerar inte med domänkonton.

Om du vill hämta ett certifikattumavtryck använder du Get-Item kommandot eller Get-ChildItem på PowerShell-enheten Cert: .

Anteckning

Den här funktionen stöds för närvarande endast på Windows OS-plattformar.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ContentType

Anger innehållstypen för webbbegäran.

Om den här parametern utelämnas och begärandemetoden är POST anger Invoke-RestMethod du innehållstypen till application/x-www-form-urlencoded. Annars anges inte innehållstypen i anropet.

ContentType kommer att åsidosättas när ett MultipartFormDataContent objekt anges för Brödtext.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Credential

Anger ett användarkonto som har behörighet att skicka begäran. Standard är den aktuella användaren.

Ange ett användarnamn, till exempel User01 eller Domain01\User01, eller ange ett PSCredential-objekt som genereras av cmdleten Get-Credential .

Autentiseringsuppgifter kan användas ensamt eller tillsammans med vissa alternativ för autentiseringsparameter . När den används ensam anger den bara autentiseringsuppgifter till fjärrservern om fjärrservern skickar en begäran om autentiseringsutmaning. När de används med autentiseringsalternativ skickas autentiseringsuppgifterna uttryckligen.

Autentiseringsuppgifter lagras i ett PSCredential-objekt och lösenordet lagras som en SecureString.

Anteckning

Mer information om SecureString-dataskydd finns i Hur säkert är SecureString?.

Type:PSCredential
Position:Named
Default value:Current user
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-CustomMethod

Anger den anpassade metod som används för webbbegäran. Detta kan användas med begärandemetoden som krävs av slutpunkten är inte ett tillgängligt alternativ för metoden . Metoden och CustomMethod kan inte användas tillsammans.

Exempel:

Invoke-RestMethod -uri 'https://api.contoso.com/widget/' -CustomMethod 'TEST'

Detta gör en TEST HTTP-begäran till API:et.

Den här funktionen har lagts till i PowerShell 6.0.0.

Type:String
Aliases:CM
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-DisableKeepAlive

Anger att cmdleten anger Värdet KeepAlive i HTTP-huvudet till Falskt. Som standard är KeepAlive Sant. KeepAlive upprättar en beständig anslutning till servern för att underlätta efterföljande begäranden.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Anger att cmdleten ska följa relationslänkar.

Vissa REST-API:er stöder sidnumrering via relationslänkar per RFC5988. I stället för att parsa rubriken för att hämta URL:en för nästa sida kan du låta cmdleten göra detta åt dig. Om du vill ange hur många gånger du ska följa relationslänkar använder du parametern MaximumFollowRelLink .

När du använder den här växeln returnerar cmdleten en samling sidor med resultat. Varje sida med resultat kan innehålla flera resultatobjekt.

Den här funktionen har lagts till i PowerShell 6.0.0.

Type:SwitchParameter
Aliases:FL
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Form

Konverterar en ordlista till en multipart/form-data överföring. Formuläret får inte användas med Brödtext. Om ContentType ignoreras.

Nycklarna i ordlistan används som formulärfältnamn. Som standard konverteras formulärvärden till strängvärden.

Om värdet är ett System.IO.FileInfo-objekt skickas innehållet i den binära filen. Namnet på filen skickas som filename. MIME anges som application/octet-stream. Get-Item kan användas för att förenkla tillhandahållande av objektet System.IO.FileInfo .

$Form = @{ resume = Get-Item 'c:\Users\jdoe\Documents\John Doe.pdf' }

Om värdet är en samlingstyp, till exempel en matris eller lista, skickas fältet för flera gånger. Värdena i listan behandlas som standard som strängar. Om värdet är ett System.IO.FileInfo-objekt skickas innehållet i den binära filen. Kapslade samlingar stöds inte.

$Form = @{ tags = 'Vacation', 'Italy', '2017' pictures = Get-ChildItem 'c:\Users\jdoe\Pictures\2017-Italy' }

I exemplet ovan anges fältet tags tre gånger i formuläret, en gång för var och en av Vacation, Italyoch 2017. Fältet pictures skickas också en gång för varje fil i 2017-Italy mappen. Det binära innehållet i filerna i mappen skickas som värden.

Den här funktionen har lagts till i PowerShell 6.1.0.

Type:IDictionary
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Headers

Anger sidhuvudena för webbbegäran. Ange en hash-tabell eller ordlista.

Om du vill ange UserAgent-huvuden använder du parametern UserAgent . Du kan inte använda den här parametern för att ange User-Agent eller cookie-huvuden.

Innehållsrelaterade rubriker, till exempel Content-Type åsidosätts när ett MultipartFormDataContent objekt anges för Brödtext.

Type:IDictionary
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InFile

Hämtar innehållet i webbbegäran från en fil.

Ange en sökväg och ett filnamn. Om du utelämnar sökvägen är standardinställningen den aktuella platsen.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Anger hur många gånger du ska följa relationslänkar om FollowRelLink används. Ett mindre värde kan behövas om REST-API:et begränsar på grund av för många begäranden. Standardvärdet är [Int32]::MaxValue. Värdet 0 (noll) förhindrar följande relationslänkar.

Type:Int32
Aliases:ML
Position:Named
Default value:Int32.MaxValue
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-MaximumRedirection

Anger hur många gånger PowerShell omdirigerar en anslutning till en alternativ URI (Uniform Resource Identifier) innan anslutningen misslyckas. Standardvärdet är 5. Värdet 0 (noll) förhindrar all omdirigering.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-MaximumRetryCount

Anger hur många gånger PowerShell försöker ansluta igen när en felkod mellan 400 och 599, inklusive eller 304 tas emot. Se även retryIntervalSec-parametern för att ange antal återförsök.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Method

Anger den metod som används för webbbegäran. De acceptabla värdena för den här parametern är:

  • Standardvärde
  • Ta bort
  • Hämta
  • Head
  • Sammanfoga
  • Alternativ
  • Patch
  • Skicka
  • Placera
  • Spårning

Parametern CustomMethod kan användas för begäransmetoder som inte anges ovan.

Type:WebRequestMethod
Accepted values:Default, Get, Head, Post, Put, Delete, Trace, Options, Merge, Patch
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-NoProxy

Anger att cmdleten inte kommer att använda en proxy för att nå målet.

Använd den här växeln när du behöver kringgå proxyn som konfigurerats i Internet Explorer eller en proxy som anges i miljön.

Den här parametern introducerades i PowerShell 6.0.

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-OutFile

Sparar svarstexten i den angivna utdatafilen. Ange en sökväg och ett filnamn. Om du utelämnar sökvägen är standardinställningen den aktuella platsen.

Som standard Invoke-RestMethod returnerar resultatet till pipelinen. Om du vill skicka resultaten till en fil och till pipelinen använder du parametern Passthru .

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-PassThru

Returnerar resultatet, förutom att skriva dem till en fil. Den här parametern är endast giltig när parametern OutFile också används i kommandot .

Type:SwitchParameter
Position:Named
Default value:No output
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-PreserveAuthorizationOnRedirect

Anger att cmdleten ska bevara rubriken, när den Authorization finns, över omdirigeringar.

Som standard tar cmdleten Authorization bort rubriken innan den omdirigeras. Om du anger den här parametern inaktiveras den här logiken i fall där huvudet måste skickas till omdirigeringsplatsen.

Den här funktionen har lagts till i PowerShell 6.0.0.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Proxy

Använder en proxyserver för begäran i stället för att ansluta direkt till Internetresursen. Ange URI (Uniform Resource Identifier) för en nätverksproxyserver.

Den här funktionen har lagts till i PowerShell 6.0.0.

Type:Uri
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ProxyCredential

Anger ett användarkonto som har behörighet att använda proxyservern som anges av proxyparametern. Standard är den aktuella användaren.

Ange ett användarnamn, till exempel User01 eller Domain01\User01, User@Domain.Comeller ange ett -objekt, till exempel ett PSCredential som genereras av cmdleten Get-Credential .

Den här parametern är endast giltig när proxyparametern också används i kommandot . Du kan inte använda parametrarna ProxyCredential och ProxyUseDefaultCredentials i samma kommando.

Type:PSCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ProxyUseDefaultCredentials

Anger att cmdleten använder den aktuella användarens autentiseringsuppgifter för att komma åt proxyservern som anges av proxyparametern.

Den här parametern är endast giltig när proxyparametern också används i kommandot . Du kan inte använda parametrarna ProxyCredential och ProxyUseDefaultCredentials i samma kommando.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ResponseHeadersVariable

Skapar en ordlista för svarsrubriker och sparar den i värdet för den angivna variabeln. Nycklarna i ordlistan innehåller fältnamnen för svarshuvudet som returneras av webbservern och värdena är respektive fältvärden.

Den här funktionen har lagts till i PowerShell 6.0.0.

Type:String
Aliases:RHV
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Resume

Utför ett bästa försök att återuppta nedladdningen av en partiell fil. Parametern Resume kräver parametern OutFile .

Resume fungerar bara på storleken på den lokala filen och fjärrfilen och utför ingen annan verifiering av att den lokala filen och fjärrfilen är desamma.

Om den lokala filstorleken är mindre än fjärrfilens storlek försöker cmdleten att återuppta nedladdningen av filen och lägga till återstående byte i slutet av filen.

Om den lokala filstorleken är samma som fjärrfilens storlek vidtas ingen åtgärd och cmdleten förutsätter att nedladdningen redan har slutförts.

Om den lokala filstorleken är större än fjärrfilens storlek skrivs den lokala filen över och hela fjärrfilen laddas ned på nytt. Det här beteendet är detsamma som att använda OutFile utan Återuppta.

Om fjärrservern inte stöder återupptagning av nedladdning skrivs den lokala filen över och hela fjärrfilen laddas ned helt igen. Det här beteendet är detsamma som att använda OutFile utan Återuppta.

Om den lokala filen inte finns skapas den lokala filen och hela fjärrfilen laddas ned helt. Det här beteendet är detsamma som att använda OutFile utan Återuppta.

Den här funktionen har lagts till i PowerShell 6.1.0.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RetryIntervalSec

Anger intervallet mellan återförsök för anslutningen när en felkod mellan 400 och 599, inklusive eller 304 tas emot. Se även parametern MaximumRetryCount för att ange antalet återförsök.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SessionVariable

Anger en variabel för vilken den här cmdleten skapar en webbbegärandesession och sparar den i värdet. Ange ett variabelnamn utan dollartecknet ($).

När du anger en sessionsvariabel Invoke-RestMethod skapar du ett sessionsobjekt för webbbegäran och tilldelar det till en variabel med det angivna namnet i PowerShell-sessionen. Du kan använda variabeln i sessionen så snart kommandot har slutförts.

Till skillnad från en fjärrsession är webbbegärandesessionen inte en beständig anslutning. Det är ett objekt som innehåller information om anslutningen och begäran, inklusive cookies, autentiseringsuppgifter, maximalt omdirigeringsvärde och användaragentsträngen. Du kan använda den för att dela tillstånd och data mellan webbbegäranden.

Om du vill använda webbbegärandesessionen i efterföljande webbbegäranden anger du sessionsvariabeln i värdet för parametern WebSession . PowerShell använder data i webbbegärandesessionsobjektet när den nya anslutningen upprättas. Om du vill åsidosätta ett värde i webbbegäranssessionen använder du en cmdlet-parameter, till exempel UserAgent eller Credential. Parametervärden har företräde framför värden i webbbegärandesessionen.

Du kan inte använda parametrarna SessionVariable och WebSession i samma kommando.

Type:String
Aliases:SV
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SkipCertificateCheck

Hoppar över certifikatverifieringskontroller som innehåller alla valideringar, till exempel förfallodatum, återkallande, betrodd rotutfärdare osv.

Varning

Att använda den här parametern är inte säkert och rekommenderas inte. Den här växeln är endast avsedd att användas mot kända värdar med hjälp av ett självsignerat certifikat i testsyfte. Använd på egen risk.

Den här funktionen har lagts till i PowerShell 6.0.0.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SkipHeaderValidation

Anger att cmdleten ska lägga till rubriker i begäran utan validering.

Den här växeln ska användas för webbplatser som kräver huvudvärden som inte överensstämmer med standarder. Om du anger den här växeln inaktiveras verifieringen så att värdet kan skickas avmarkerat. När detta anges läggs alla rubriker till utan validering.

Detta inaktiverar validering av värden som skickas till parametrarna ContentType, Headers och UserAgent .

Den här funktionen har lagts till i PowerShell 6.0.0.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SslProtocol

Anger de SSL/TLS-protokoll som är tillåtna för webbbegäran. Som standard tillåts SSL/TLS-protokoll som stöds av systemet. SslProtocol gör det möjligt att begränsa till specifika protokoll i efterlevnadssyfte.

SslProtocol använder WebSslProtocol flagguppräkningen. Det går att ange fler än ett protokoll med flaggnotation eller kombinera flera WebSslProtocol alternativ med -bor, men att tillhandahålla flera protokoll stöds inte på alla plattformar.

Anteckning

På icke-Windows-plattformar är det kanske inte möjligt att tillhandahålla 'Tls, Tls12' som ett alternativ.

Den här funktionen har lagts till i PowerShell 6.0.0.

Type:WebSslProtocol
Accepted values:Default, Tls, Tls11, Tls12
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-TimeoutSec

Anger hur länge begäran kan vänta innan tidsgränsen uppnås. Ange ett värde i sekunder. Standardvärdet 0 anger en tidsgräns på obestämd tid.

En DNS-fråga (Domain Name System) kan ta upp till 15 sekunder att returnera eller överskrida tidsgränsen. Om din begäran innehåller ett värdnamn som kräver lösning och du anger TimeoutSec till ett värde som är större än noll, men mindre än 15 sekunder, kan det ta 15 sekunder eller mer innan en WebException genereras och tidsgränsen för din begäran uppnås.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Token

OAuth- eller Ägartoken som ska inkluderas i begäran. Token krävs av vissa autentiseringsalternativ . Det kan inte användas oberoende av varandra.

Token tar en SecureString som innehåller token. Använd följande manuellt för att ange token:

Invoke-RestMethod -Uri $uri -Authentication OAuth -Token (Read-Host -AsSecureString)

Den här parametern introducerades i PowerShell 6.0.

Type:SecureString
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-TransferEncoding

Anger ett värde för HTTP-svarshuvudet för överföringskodning. De acceptabla värdena för den här parametern är:

  • Chunked
  • Komprimera
  • Tömma
  • Gzip
  • Identitet
Type:String
Accepted values:chunked, compress, deflate, gzip, identity
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Uri

Anger URI (Uniform Resource Identifier) för den Internetresurs som webbbegäran skickas till. Den här parametern stöder HTTP-, HTTPS-, FTP- och FILE-värden.

Den här parametern krävs. Parameternamnet (Uri) är valfritt.

Type:Uri
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-UseBasicParsing

Den här parametern har blivit inaktuell. Från och med PowerShell 6.0.0 använder alla webbbegäranden endast grundläggande parsning. Den här parametern ingår endast för bakåtkompatibilitet och all användning av den påverkar inte cmdletens funktion.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UseDefaultCredentials

Anger att cmdleten använder den aktuella användarens autentiseringsuppgifter för att skicka webbbegäran. Detta kan inte användas med autentisering eller autentiseringsuppgifter och stöds kanske inte på alla plattformar.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UserAgent

Anger en användaragentsträng för webbbegäran.

Standardanvändaragenten liknar Mozilla/5.0 (Windows NT 10.0; Microsoft Windows 10.0.15063; en-US) PowerShell/6.0.0 med små variationer för varje operativsystem och plattform.

Om du vill testa en webbplats med standardanvändaragentsträngen som används av de flesta webbläsare använder du egenskaperna för KLASSEN PSUserAgent , till exempel Chrome, FireFox, InternetExplorer, Opera och Safari.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WebSession

Anger en webbförfrågningssession. Ange variabelnamnet, inklusive dollartecknet ($).

Om du vill åsidosätta ett värde i webbbegäranssessionen använder du en cmdlet-parameter, till exempel UserAgent eller Credential. Parametervärden har företräde framför värden i webbbegärandesessionen. Innehållsrelaterade rubriker, till exempel Content-Type, kommer också att åsidosättas när ett MultipartFormDataContent-objekt anges för Brödtext.

Till skillnad från en fjärrsession är webbbegärandesessionen inte en beständig anslutning. Det är ett objekt som innehåller information om anslutningen och begäran, inklusive cookies, autentiseringsuppgifter, maximalt omdirigeringsvärde och användaragentsträngen. Du kan använda den för att dela tillstånd och data mellan webbbegäranden.

Om du vill skapa en webbbegärandesession anger du ett variabelnamn, utan ett dollartecken, i värdet för parametern SessionVariable för ett Invoke-RestMethod kommando. Invoke-RestMethod skapar sessionen och sparar den i variabeln. I efterföljande kommandon använder du variabeln som värde för parametern WebSession .

Du kan inte använda parametrarna SessionVariable och WebSession i samma kommando.

Type:WebRequestSession
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Indata

Object

Du kan skicka brödtexten för en webbbegäran till Invoke-RestMethod.

Utdata

System.Int64, System.String, System.Xml.XmlDocument

Cmdletens utdata beror på formatet på innehållet som hämtas.

PSObject

Om begäran returnerar JSON-strängar Invoke-RestMethod returnerar en PSObject som representerar strängarna.

Kommentarer

Vissa funktioner kanske inte är tillgängliga på alla plattformar.

Mer information om hur .NET tillhandahåller proxytjänster till PowerShell finns i Accessing the Internet Through a Proxy (Åtkomst till Internet via en proxyserver).