Invoke-RestMethod
RESTful web hizmetine HTTP veya HTTPS isteği gönderir.
Syntax
Invoke-RestMethod
[-Method <WebRequestMethod>]
[-FollowRelLink]
[-MaximumFollowRelLink <Int32>]
[-ResponseHeadersVariable <String>]
[-StatusCodeVariable <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]
[-SkipHttpErrorCheck]
[-PreserveAuthorizationOnRedirect]
[-SkipHeaderValidation]
[<CommonParameters>]
Invoke-RestMethod
[-Method <WebRequestMethod>]
[-FollowRelLink]
[-MaximumFollowRelLink <Int32>]
[-ResponseHeadersVariable <String>]
[-StatusCodeVariable <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]
[-SkipHttpErrorCheck]
[-PreserveAuthorizationOnRedirect]
[-SkipHeaderValidation]
[<CommonParameters>]
Invoke-RestMethod
-CustomMethod <String>
[-FollowRelLink]
[-MaximumFollowRelLink <Int32>]
[-ResponseHeadersVariable <String>]
[-StatusCodeVariable <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]
[-SkipHttpErrorCheck]
[-PreserveAuthorizationOnRedirect]
[-SkipHeaderValidation]
[<CommonParameters>]
Invoke-RestMethod
-CustomMethod <String>
[-FollowRelLink]
[-MaximumFollowRelLink <Int32>]
[-ResponseHeadersVariable <String>]
[-StatusCodeVariable <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]
[-SkipHttpErrorCheck]
[-PreserveAuthorizationOnRedirect]
[-SkipHeaderValidation]
[<CommonParameters>]
Description
Cmdlet, Invoke-RestMethod
zengin yapılandırılmış veriler döndüren Temsili Durum Aktarımı (REST) web hizmetlerine HTTP ve HTTPS istekleri gönderir.
PowerShell, yanıtı veri türüne göre biçimlendirer. RSS veya ATOM akışı için PowerShell, Öğe veya Giriş XML düğümlerini döndürür. JavaScript Nesne Gösterimi (JSON) veya XML için PowerShell içeriği nesnelere [PSCustomObject]
dönüştürür veya seri durumdan çıkartır.
Not
REST uç noktası birden çok nesne döndürdüğünde, nesneler bir dizi olarak alınır. çıkışını Invoke-RestMethod
başka bir komuta aktarırsanız, tek [Object[]]
bir nesne olarak gönderilir. Bu dizinin içeriği, işlem hattındaki sonraki komut için numaralandırılmaz.
Bu cmdlet, Windows PowerShell 3.0'da kullanıma sunulmuştur.
PowerShell 7.0'da başlayarak ortam Invoke-RestMethod
değişkenleri tarafından tanımlanan ara sunucu yapılandırmasını destekler. Bu makalenin Notlar bölümüne bakın.
Örnekler
Örnek 1: PowerShell RSS akışını alma
Bu örnekte, PowerShell Blogu RSS akışından bilgi almak için cmdlet'i kullanılır Invoke-RestMethod
. komut Format-Table
, cmdlet'ini kullanarak bir tablodaki her blogun Title ve pubDate özelliklerinin değerlerini görüntüler.
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
Örnek 2: POST isteği çalıştırma
Bu örnekte bir kullanıcı, kullanıcının kuruluşundaki intranet web sitesinde POST isteği gerçekleştirmek için çalıştırılır Invoke-RestMethod
.
$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
Kimlik bilgileri istenir ve sonra içinde $Cred
depolanır ve erişilecek URL içinde $Url
tanımlanır.
$Body
değişkeni arama ölçütlerini açıklar, çıkış modu olarak CSV'yi belirtir ve döndürülen veriler için iki gün önce başlayıp bir gün önce biten bir zaman aralığını belirtir. Gövde değişkeni, iletişimde olan belirli REST API'sine uygulanan parametrelerin Invoke-RestMethod
değerlerini belirtir.
Komut Invoke-RestMethod
, sonuçta elde edilen CSV çıkış dosyası için bir yol ve dosya adı belirterek tüm değişkenler yerinde çalıştırılır.
Örnek 3: İlişki bağlantılarını izleme
Bazı REST API'leri , RFC5988 başına İlişki Bağlantıları aracılığıyla sayfalandırmayı destekler. Sonraki sayfanın URL'sini almak için üst bilgiyi ayrıştırmak yerine, cmdlet'in bunu sizin için yapmasını sağlayabilirsiniz. Bu örnek, PowerShell GitHub deposundaki sorunların ilk iki sayfasını döndürür.
$url = 'https://api.github.com/repos/powershell/powershell/issues'
Invoke-RestMethod $url -FollowRelLink -MaximumFollowRelLink 2
Örnek 4: Basitleştirilmiş Çok Parçalı/Form-Veri Gönderimi
Bazı API'ler dosyaları ve karma içeriği karşıya yüklemek için gönderimler gerektirir multipart/form-data
. Bu örnekte bir kullanıcının profilinin nasıl güncelleştirilecekleri gösterilmektedir.
$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
Profil formu şu alanları gerektirir: firstName
, lastName
, email
, avatar
, birthday
ve hobbies
. API, kullanıcı profili resmi için alanda bir görüntü sağlanmasını avatar
bekliyor. API aynı formda gönderilecek birden çok hobbies
girdiyi de kabul eder.
HashTable oluşturulurken $Form
, anahtar adları form alanı adları olarak kullanılır. Varsayılan olarak, HashTable değerleri dizelere dönüştürülür. Bir System.IO.FileInfo
değer varsa, dosya içeriği gönderilir. Diziler veya listeler gibi bir koleksiyon varsa, form alanı birden çok kez gönderilir.
anahtarında avatar
kullanıldığında Get-Item
nesne FileInfo
değer olarak ayarlanır. Sonuç, için jdoe.png
görüntü verilerinin gönderileceğidir.
Anahtara hobbies
bir liste sağlandığında, hobbies
alan her liste öğesi için gönderimlerde bir kez bulunur.
Örnek 5: Birden çok üst bilgi geçirme
API'ler genellikle kimlik doğrulaması veya doğrulama için geçirilen üst bilgileri gerektirir. Bu örnekte, bir hash-table
REST API'ye birden çok üst bilgi geçirme gösterilmektedir.
$headers = @{
'userId' = 'UserIDValue'
'token' = 'TokenValue'
}
Invoke-RestMethod -Uri $uri -Method Post -Headers $headers -Body $body
Örnek 6: İşlem hattında döndürülen öğeleri listeleme
GitHub bir dizide birden çok nesne döndürür. Çıkışı başka bir komuta aktarırsanız, tek [Object[]]
bir nesne olarak gönderilir.
Nesneleri işlem hattına numaralandırmak için, sonuçları cmdlet'e Write-Output
aktarın veya parantez içinde sarmalayın. Aşağıdaki örnek, GitHub tarafından döndürülen nesne sayısını sayar. Ardından işlem hattına numaralandırılan nesne sayısını sayar.
$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
Parametreler
-AllowUnencryptedAuthentication
Kimlik bilgilerinin ve gizli dizilerin şifrelenmemiş bağlantılar üzerinden gönderilmesine izin verir. Varsayılan olarak, Kimlik Bilgisi veya Uri ile başlamayan https://
herhangi bir Kimlik Doğrulama seçeneğinin belirtilmesi hataya neden olur ve şifrelenmemiş bağlantılar üzerinden gizli dizilerin yanlışlıkla düz metin olarak iletilmesini önlemek için istek durdurulur. Bu davranışı kendi riskinizle geçersiz kılmak için AllowUnencryptedAuthentication parametresini sağlayın.
Uyarı
Bu parametrenin kullanılması güvenli değildir ve önerilmez. Yalnızca şifrelenmiş bağlantılar sağlayamayan eski sistemlerle uyumluluk için sağlanır. Kendi riskinizle kullanın.
Bu özellik PowerShell 6.0.0'a eklenmiştir.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Authentication
İstek için kullanılacak açık kimlik doğrulama türünü belirtir. Varsayılan değer Yok'tur. Authentication parametresi UseDefaultCredentials parametresiyle kullanılamaz.
Kullanılabilir Kimlik Doğrulama Seçenekleri:
None
: Kimlik Doğrulaması sağlanmıyorsa bu varsayılan seçenektir. Açık kimlik doğrulaması kullanılmaz.Basic
: Kimlik Bilgisi gerektirir. Kimlik bilgileri, biçimindebase64(user:password)
bir RFC 7617 Temel Kimlik DoğrulamasıAuthorization: Basic
üst bilgisi göndermek için kullanılır.Bearer
: Token parametresini gerektirir. Sağlanan belirteçle bir RFC 6750Authorization: Bearer
üst bilgisi gönderir.OAuth
: Token parametresini gerektirir. Sağlanan belirteçle bir RFC 6750Authorization: Bearer
üst bilgisi gönderir.
Kimlik Doğrulaması sağlanması, Üst Bilgiler'e sağlanan veya WebSession'a dahil edilen tüm Authorization
üst bilgileri geçersiz kılar.
Bu özellik PowerShell 6.0.0'a eklenmiştir.
Type: | WebAuthenticationType |
Accepted values: | None, Basic, Bearer, OAuth |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Body
İsteğin gövdesini belirtir. Gövde, üst bilgileri izleyen isteğin içeriğidir.
Gövde değerini öğesine Invoke-RestMethod
de yöneltebilirsiniz.
Body parametresi, sorgu parametrelerinin listesini veya yanıtın içeriğini belirtmek için kullanılabilir.
Giriş bir GET isteği olduğunda ve gövde bir IDictionary
(genellikle bir karma tablosu) olduğunda, gövde sorgu parametreleri olarak Tekdüzen Kaynak Tanımlayıcısı'na (URI) eklenir. Diğer istek türleri (POST gibi) için gövde, standart ad=değer biçiminde istek gövdesinin değeri olarak ayarlanır.
Gövde bir form olduğunda veya başka bir Invoke-WebRequest
çağrının çıktısı olduğunda, PowerShell istek içeriğini form alanlarına ayarlar.
Body parametresi bir System.Net.Http.MultipartFormDataContent nesnesini de kabul edebilir. Bu, istekleri kolaylaştırır multipart/form-data
. Body için MultipartFormDataContent nesnesi sağlandığında ContentType, Headers veya WebSession parametrelerine sağlanan içerikle ilgili tüm üst bilgiler nesnenin MultipartFormDataContent
içerik üst bilgileri tarafından geçersiz kılınır. Bu özellik PowerShell 6.0.0'a eklenmiştir.
Type: | Object |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Certificate
Güvenli bir web isteği için kullanılan istemci sertifikasını belirtir. Sertifikayı içeren bir değişken veya sertifikayı alan bir komut veya ifade girin.
Sertifika bulmak için Sertifika (Cert:
) sürücüsündeki cmdlet'i kullanın Get-PfxCertificate
veya kullanınGet-ChildItem
. Sertifika geçerli değilse veya yeterli yetkiye sahip değilse, komut başarısız olur.
Type: | X509Certificate |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-CertificateThumbprint
İsteği gönderme izni olan bir kullanıcı hesabının dijital ortak anahtar sertifikasını (X509) belirtir. Sertifikanın sertifika parmak izini girin.
Sertifikalar, istemci sertifikası tabanlı kimlik doğrulamasında kullanılır. Bunlar yalnızca yerel kullanıcı hesaplarıyla eşlenebilir; etki alanı hesaplarıyla çalışmazlar.
Sertifika parmak izini almak için PowerShell Cert:
sürücüsündeki veya Get-ChildItem
komutunu kullanınGet-Item
.
Not
Bu özellik şu anda yalnızca Windows işletim sistemi platformlarında desteklenmektedir.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ContentType
Web isteğinin içerik türünü belirtir.
Bu parametre atlanırsa ve istek yöntemi POST ise, Invoke-RestMethod
içerik türünü olarak application/x-www-form-urlencoded
ayarlar. Aksi takdirde, içerik türü çağrıda belirtilmez.
Body için bir MultipartFormDataContent
nesne sağlandığında ContentType geçersiz kılınacaktır.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Credential
İsteği gönderme izni olan bir kullanıcı hesabı belirtir. Varsayılan, mevcut kullanıcıdır.
User01 veya Domain01\User01 gibi bir kullanıcı adı yazın veya cmdlet tarafından Get-Credential
oluşturulan psCredential nesnesini girin.
Kimlik bilgileri tek başına veya belirli Kimlik Doğrulama parametresi seçenekleriyle birlikte kullanılabilir. Tek başına kullanıldığında, yalnızca uzak sunucu bir kimlik doğrulama sınama isteği gönderdiğinde uzak sunucuya kimlik bilgileri sağlar. Kimlik doğrulama seçenekleriyle kullanıldığında kimlik bilgileri açıkça gönderilir.
Kimlik bilgileri bir PSCredential nesnesinde depolanır ve parola SecureString olarak depolanır.
Not
SecureString veri koruması hakkında daha fazla bilgi için bkz. SecureString ne kadar güvenli?.
Type: | PSCredential |
Position: | Named |
Default value: | Current user |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-CustomMethod
Web isteği için kullanılan özel yöntemi belirtir. Bu, uç noktanın gerektirdiği İstek Yöntemi ile kullanılabilir, Yöntemde kullanılabilir bir seçenek değildir. Method ve CustomMethod birlikte kullanılamaz.
Örnek:
Invoke-RestMethod -uri 'https://api.contoso.com/widget/' -CustomMethod 'TEST'
Bu, API'ye bir TEST
HTTP isteğinde bulunur.
Bu özellik PowerShell 6.0.0'a eklenmiştir.
Type: | String |
Aliases: | CM |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-DisableKeepAlive
Cmdlet'in HTTP üst bilgisindeki KeepAlive değerini False olarak ayarladığını gösterir. KeepAlive varsayılan olarak True'dur. KeepAlive , sonraki istekleri kolaylaştırmak için sunucuyla kalıcı bir bağlantı kurar.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-FollowRelLink
Cmdlet'in ilişki bağlantılarını izlemesi gerektiğini gösterir.
Bazı REST API'leri , RFC5988 başına İlişki Bağlantıları aracılığıyla sayfalandırmayı destekler. Sonraki sayfanın URL'sini almak için üst bilgiyi ayrıştırmak yerine, cmdlet'in bunu sizin için yapmasını sağlayabilirsiniz. İlişki bağlantılarını kaç kez izleyeceğinizi ayarlamak için MaximumFollowRelLink parametresini kullanın.
Bu anahtarı kullanırken, cmdlet sonuç sayfalarından oluşan bir koleksiyon döndürür. Her sonuç sayfası birden çok sonuç öğesi içerebilir.
Bu özellik PowerShell 6.0.0'a eklenmiştir.
Type: | SwitchParameter |
Aliases: | FL |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Form
Sözlüğü gönderime multipart/form-data
dönüştürür. FormGövde ile kullanılamaz.
ContentType yoksayılırsa.
Sözlüğün anahtarları form alanı adları olarak kullanılır. Varsayılan olarak, form değerleri dize değerlerine dönüştürülür.
Değer bir System.IO.FileInfo nesnesiyse, ikili dosya içeriği gönderilir.
Dosyanın adı olarak filename
gönderilir. MIME olarak application/octet-stream
ayarlanır. Get-Item
System.IO.FileInfo nesnesinin tedarikini basitleştirmek için kullanılabilir.
$Form = @{ resume = Get-Item 'c:\Users\jdoe\Documents\John Doe.pdf' }
Değer Dizi veya Liste gibi bir koleksiyon türüyse, for alanı birden çok kez gönderilir. Listenin değerleri varsayılan olarak dize olarak değerlendirilir. Değer bir System.IO.FileInfo nesnesiyse, ikili dosya içeriği gönderilir. İç içe koleksiyonlar desteklenmez.
$Form = @{ tags = 'Vacation', 'Italy', '2017' pictures = Get-ChildItem 'c:\Users\jdoe\Pictures\2017-Italy' }
Yukarıdaki örnekte, alanı , ve 2017
alanlarının tags
her biri Vacation
Italy
için bir kez olmak üzere formda üç kez sağlanacaktır. Alan pictures
, klasördeki 2017-Italy
her dosya için de bir kez gönderilir. Bu klasördeki dosyaların ikili içeriği, değerler olarak gönderilir.
Bu özellik PowerShell 6.1.0'a eklenmiştir.
Type: | IDictionary |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Headers
Web isteğinin üst bilgilerini belirtir. Karma tablo veya sözlük girin.
UserAgent üst bilgilerini ayarlamak için UserAgent parametresini kullanın. Veya tanımlama bilgisi üst bilgilerini belirtmek User-Agent
için bu parametreyi kullanamazsınız.
Gibi içerikle ilgili üst bilgiler, Content-Type
Gövde için bir MultipartFormDataContent
nesne sağlandığında geçersiz kılınır.
Type: | IDictionary |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InFile
Web isteğinin içeriğini bir dosyadan alır.
Bir yol ve dosya adı girin. Yolu atlarsanız, varsayılan konum geçerli konumdur.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-MaximumFollowRelLink
FollowRelLink kullanılıyorsa, ilişki bağlantılarının kaç kez izlenip izlenmediğini belirtir. REST api çok fazla istek nedeniyle kısıtlanırsa daha küçük bir değer gerekebilir. [Int32]::MaxValue
varsayılan değerdir. 0 (sıfır) değeri, aşağıdaki ilişki bağlantılarını engeller.
Type: | Int32 |
Aliases: | ML |
Position: | Named |
Default value: | Int32.MaxValue |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-MaximumRedirection
PowerShell'in bağlantı başarısız olmadan önce bir bağlantıyı kaç kez alternatif bir Tekdüzen Kaynak Tanımlayıcısı'na (URI) yeniden yönlendireceklerini belirtir. Varsayılan değer 5 olur. 0 (sıfır) değeri tüm yeniden yönlendirmeyi engeller.
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-MaximumRetryCount
400 ile 599 (dahil) veya 304 arasında bir hata kodu alındığında PowerShell'in kaç kez yeniden bağlantı denemesi yapılacağını belirtir. Ayrıca yeniden deneme sayısını belirtmek için bkz. RetryIntervalSec parametresi.
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Method
Web isteği için kullanılan yöntemi belirtir. Bu parametrenin kabul edilebilir değerleri şunlardır:
Default
Delete
Get
Head
Merge
Options
Patch
Post
Put
Trace
CustomMethod parametresi yukarıda listelenmeyen İstek Yöntemleri için kullanılabilir.
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
Cmdlet'in hedefe ulaşmak için ara sunucu kullanmayacağını gösterir.
Internet Explorer'da yapılandırılan ara sunucuyu veya ortamda belirtilen bir ara sunucuyu atlamanız gerektiğinde bu anahtarı kullanın.
Bu parametre PowerShell 6.0'da kullanıma sunulmuştur.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-OutFile
Yanıt gövdesini belirtilen çıkış dosyasına kaydeder. Bir yol ve dosya adı girin. Yolu atlarsanız, varsayılan konum geçerli konumdur. Ad, değişmez değer yolu olarak değerlendirilir. Köşeli ayraç ([]
) içeren adlar tek tırnak içine alınmalıdır ('
).
Varsayılan olarak sonuçları Invoke-RestMethod
işlem hattına döndürür.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-PassThru
Bu parametre yalnızca outfile parametresi komutunda da kullanıldığında geçerlidir. Amaç, sonuçların dosyaya ve işlem hattına yazılmıştır.
Not
PassThru parametresini kullandığınızda çıkış işlem hattına yazılır ancak dosya oluşturulmaz. Daha fazla bilgi için bkz. PowerShell Sorunu #15409.
Type: | SwitchParameter |
Position: | Named |
Default value: | No output |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-PreserveAuthorizationOnRedirect
Cmdlet'in mevcut olduğunda yeniden yönlendirmeler arasında üst bilgiyi koruması Authorization
gerektiğini gösterir.
Varsayılan olarak, cmdlet yeniden yönlendirmeden önce üst bilgiyi şeritler Authorization
. Bu parametrenin belirtilmesi, üst bilginin yeniden yönlendirme konumuna gönderilmesi gereken durumlar için bu mantığı devre dışı bırakır.
Bu özellik PowerShell 6.0.0'a eklenmiştir.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Proxy
doğrudan internet kaynağına bağlanmak yerine istek için bir proxy sunucusu kullanır. Bir ağ proxy sunucusunun Tekdüzen Kaynak Tanımlayıcısı'nı (URI) girin.
Bu özellik PowerShell 6.0.0'a eklenmiştir.
Type: | Uri |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ProxyCredential
Proxy parametresi tarafından belirtilen ara sunucuyu kullanma izni olan bir kullanıcı hesabı belirtir. Varsayılan, mevcut kullanıcıdır.
User01 veya Domain01\User01User@Domain.Com gibi bir kullanıcı adı yazın veya cmdlet tarafından Get-Credential
oluşturulan bir nesne gibi bir PSCredential
nesne girin.
Bu parametre yalnızca komutta Proxy parametresi de kullanıldığında geçerlidir. ProxyCredential ve ProxyUseDefaultCredentials parametrelerini aynı komutta kullanamazsınız.
Type: | PSCredential |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ProxyUseDefaultCredentials
Cmdlet'in, Proxy parametresi tarafından belirtilen ara sunucuya erişmek için geçerli kullanıcının kimlik bilgilerini kullandığını gösterir.
Bu parametre yalnızca komutta Proxy parametresi de kullanıldığında geçerlidir. ProxyCredential ve ProxyUseDefaultCredentials parametrelerini aynı komutta kullanamazsınız.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ResponseHeadersVariable
Yanıt Üst Bilgileri Sözlüğü içeren bir değişken oluşturur. Dolar işareti ($
) simgesi olmadan bir değişken adı girin. Sözlüğün anahtarları, web sunucusu tarafından döndürülen Yanıt Üst Bilgisinin alan adlarını ve değerlerini içerir.
Bu özellik PowerShell 6.0.0'a eklendi.
Type: | String |
Aliases: | RHV |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Resume
Kısmi bir dosyayı indirmeye devam etmek için en iyi çabayı gösterir. Resume parametresi OutFile parametresini gerektirir.
Özgeçmiş yalnızca yerel dosya ve uzak dosyanın boyutu üzerinde çalışır ve yerel dosya ile uzak dosyanın aynı olduğuna ilişkin başka bir doğrulama gerçekleştirmez.
Yerel dosya boyutu uzak dosya boyutundan küçükse, cmdlet dosyayı indirmeye devam etmeye çalışır ve kalan baytları dosyanın sonuna ekler.
Yerel dosya boyutu uzak dosya boyutuyla aynıysa hiçbir işlem yapılmaz ve cmdlet indirme işleminin zaten tamamlandığını varsayar.
Yerel dosya boyutu uzak dosya boyutundan büyükse, yerel dosyanın üzerine yazılır ve uzak dosyanın tamamı tamamen yeniden indirilir. Bu davranış, Özgeçmiş olmadan OutFile kullanmakla aynıdır.
Uzak sunucu indirme devam ettirilmesini desteklemiyorsa yerel dosyanın üzerine yazılır ve uzak dosyanın tamamı tamamen yeniden indirilir. Bu davranış, Özgeçmiş olmadan OutFile kullanmakla aynıdır.
Yerel dosya yoksa, yerel dosya oluşturulur ve uzak dosyanın tamamı tamamen indirilir. Bu davranış, Özgeçmiş olmadan OutFile kullanmakla aynıdır.
Bu özellik PowerShell 6.1.0'a eklendi.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-RetryIntervalSec
400 ile 599 (dahil) veya 304 arasında bir hata kodu alındığında bağlantı için yeniden denemeler arasındaki aralığı belirtir. Yeniden deneme sayısını belirtmek için bkz. MaximumRetryCount parametresi.
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SessionVariable
Web isteği oturumunu içeren bir değişken oluşturur. Dolar işareti ($
) simgesi olmadan bir değişken adı girin.
Bir oturum değişkeni belirttiğinizde, Invoke-RestMethod
bir web isteği oturum nesnesi oluşturur ve bunu PowerShell oturumunuzda belirtilen ada sahip bir değişkene atar. Komutu tamamlar tamamlamaz oturumunuzda değişkenini kullanabilirsiniz.
Uzak oturumun aksine, web isteği oturumu kalıcı bir bağlantı değildir. Bağlantı ve istek hakkında tanımlama bilgileri, kimlik bilgileri, maksimum yeniden yönlendirme değeri ve kullanıcı aracısı dizesi gibi bilgileri içeren bir nesnedir. Durumu ve verileri web istekleri arasında paylaşmak için bunu kullanabilirsiniz.
Sonraki web isteklerinde web isteği oturumunu kullanmak için, Oturum değişkenini WebSession parametresinin değerinde belirtin. PowerShell, yeni bağlantı kurarken web isteği oturum nesnesindeki verileri kullanır. Web isteği oturumundaki bir değeri geçersiz kılmak için UserAgent veya Credential gibi bir cmdlet parametresi kullanın. Parametre değerleri, web isteği oturumundaki değerlerden önceliklidir.
SessionVariable ve WebSession parametrelerini aynı komutta kullanamazsınız.
Type: | String |
Aliases: | SV |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SkipCertificateCheck
Süre sonu, iptal, güvenilen kök yetkili vb. gibi tüm doğrulamaları içeren sertifika doğrulama denetimlerini atlar.
Uyarı
Bu parametrenin kullanılması güvenli değildir ve önerilmez. Bu anahtar yalnızca test amacıyla otomatik olarak imzalanan bir sertifika kullanan bilinen konaklarda kullanılmak üzere tasarlanmıştır. Kendi riskinizle kullanın.
Bu özellik PowerShell 6.0.0'a eklendi.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SkipHeaderValidation
Cmdlet'in doğrulama olmadan isteğe üst bilgi eklemesi gerektiğini gösterir.
Bu anahtar, standartlara uymayan üst bilgi değerleri gerektiren siteler için kullanılmalıdır. Bu anahtarın belirtilmesi, değerin işaretsiz geçirilmesine izin vermek için doğrulamayı devre dışı bırakır. Belirtildiğinde, tüm üst bilgiler doğrulama olmadan eklenir.
Bu, ContentType, Headers ve UserAgent parametrelerine geçirilen değerler için doğrulamayı devre dışı bırakır.
Bu özellik PowerShell 6.0.0'a eklendi.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SkipHttpErrorCheck
Bu parametre, cmdlet'in HTTP hata durumlarını yoksayıp yanıtları işlemeye devam etmesine neden olur. Hata yanıtları, işlem hattına başarılı oldukları gibi yazılır.
Bu parametre PowerShell 7'de tanıtıldı.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SslProtocol
Web isteği için izin verilen SSL/TLS protokollerini ayarlar. Varsayılan olarak, sistem tarafından desteklenen SSL/TLS protokollerinin tümüne izin verilir. SslProtocol , uyumluluk amacıyla belirli protokollerle sınırlamaya olanak tanır.
Bu değerler, bayrak tabanlı sabit listesi olarak tanımlanır. Bu parametreyi kullanarak birden çok bayrağı ayarlamak için birden çok değeri birleştirebilirsiniz. Değerler SslProtocol parametresine bir değer dizisi veya bu değerlerin virgülle ayrılmış dizesi olarak geçirilebilir. cmdlet'i bir ikili OR işlemi kullanarak değerleri birleştirir. Değerleri dizi olarak geçirmek en basit seçenektir ve ayrıca değerlerde sekme tamamlama özelliğini kullanmanıza olanak tanır. Tüm platformlarda birden çok değer sağlayamayabilirsiniz.
Not
Windows olmayan platformlarda tedarik Tls
etmek veya Tls12
bir seçenek olarak mümkün olmayabilir. desteği Tls13
tüm işletim sistemlerinde kullanılamaz ve işletim sistemi temelinde doğrulanması gerekir.
Bu özellik PowerShell 6.0.0'a, desteği Tls13
ise PowerShell 7.1'e eklendi.
Type: | WebSslProtocol |
Accepted values: | Default, Tls, Tls11, Tls12, Tls13 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-StatusCodeVariable
İsteğin HTTP durum kodu sonucunu içeren bir değişken oluşturur. Dolar işareti ($
) simgesi olmadan bir değişken adı girin.
parametresi SkipHttpErrorCheck parametresiyle kullanıldığında başarı iletilerini veya hata iletilerini tanımlayabilir.
parametresinin değişken adını gibi bir dize olarak -StatusCodeVariable "scv"
girin.
Bu parametre PowerShell 7'de tanıtıldı.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-TimeoutSec
İsteğin zaman aşımına uğramadan önce ne kadar süreyle beklenebileceğini belirtir. Saniye olarak bir değer girin. Varsayılan değer olan 0, süresiz bir zaman aşımı belirtir.
Etki Alanı Adı Sistemi (DNS) sorgusu döndürülmesi veya zaman aşımına uğrarken 15 saniye kadar sürebilir. İsteğiniz çözüm gerektiren bir ana bilgisayar adı içeriyorsa ve TimeoutSec'i sıfırdan büyük ama 15 saniyeden kısa bir değere ayarlarsanız, WebException'ın atılması 15 saniye veya daha uzun sürebilir ve isteğiniz zaman aşımına uğrar.
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Token
İstekte dahil etmek için OAuth veya Taşıyıcı belirteci. Belirteç , belirli Kimlik Doğrulama seçenekleri için gereklidir. Bağımsız olarak kullanılamaz.
Belirteç , belirteci içeren bir SecureString
alır. Belirteci sağlamak için aşağıdakileri el ile kullanın:
Invoke-RestMethod -Uri $uri -Authentication OAuth -Token (Read-Host -AsSecureString)
Bu parametre PowerShell 6.0'da kullanıma sunulmuştur.
Type: | SecureString |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-TransferEncoding
Aktarım kodlaması HTTP yanıt üst bilgisi için bir değer belirtir. Bu parametrenin kabul edilebilir değerleri şunlardır:
- Yığın
- Sıkıştır
- Deflate
- Gzip
- Kimlik
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
Web isteğinin gönderildiği internet kaynağının Tekdüzen Kaynak Tanımlayıcısını (URI) belirtir. Bu parametre HTTP, HTTPS, FTP ve FILE değerlerini destekler.
Bu parametre zorunludur. Parametre adı (Uri) isteğe bağlıdır.
Type: | Uri |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-UseBasicParsing
Bu parametre kullanım dışı bırakıldı. PowerShell 6.0.0 sürümünden başlayarak, tüm Web istekleri yalnızca temel ayrıştırma kullanır. Bu parametre yalnızca geriye dönük uyumluluk için dahil edilir ve cmdlet'in çalışması üzerinde herhangi bir etkisi olmaz.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-UseDefaultCredentials
Cmdlet'in web isteğini göndermek için geçerli kullanıcının kimlik bilgilerini kullandığını gösterir. Bu, Kimlik Doğrulaması veya Kimlik Bilgileri ile kullanılamaz ve tüm platformlarda desteklenmeyebilir.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-UserAgent
Web isteği için bir kullanıcı aracısı dizesi belirtir.
Varsayılan kullanıcı aracısı, her işletim sistemi ve platform için küçük varyasyonlarla benzerdir Mozilla/5.0 (Windows NT 10.0; Microsoft Windows 10.0.15063; en-US) PowerShell/6.0.0
.
Web sitesini çoğu internet tarayıcısı tarafından kullanılan standart kullanıcı aracısı dizesiyle test etmek için Chrome, FireFox, InternetExplorer, Opera ve Safari gibi PSUserAgent sınıfının özelliklerini kullanın.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WebSession
Bir web isteği oturumu belirtir. Dolar işareti ($
) dahil olmak üzere değişken adını girin.
Web isteği oturumundaki bir değeri geçersiz kılmak için UserAgent veya Credential gibi bir cmdlet parametresi kullanın. Parametre değerleri, web isteği oturumundaki değerlerden önceliklidir. Body için MultipartFormDataContent nesnesi sağlandığında, gibi Content-Type
içerikle ilgili üst bilgiler de geçersiz kılınır.
Uzak oturumun aksine, web isteği oturumu kalıcı bir bağlantı değildir. Bağlantı ve istek hakkında tanımlama bilgileri, kimlik bilgileri, maksimum yeniden yönlendirme değeri ve kullanıcı aracısı dizesi gibi bilgileri içeren bir nesnedir. Web istekleri arasında durum ve veri paylaşmak için bunu kullanabilirsiniz.
Web isteği oturumu oluşturmak için, bir komutun SessionVariable parametresinin değerine dolar işareti olmadan bir Invoke-RestMethod
değişken adı girin. Invoke-RestMethod
oturumu oluşturur ve değişkene kaydeder. Sonraki komutlarda, WebSession parametresinin değeri olarak değişkenini kullanın.
SessionVariable ve WebSession parametrelerini aynı komutta kullanamazsınız.
Type: | WebRequestSession |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Girişler
Web isteğinin gövdesini adresine iletebilirsiniz Invoke-RestMethod
.
Çıkışlar
System.Int64, System.String, System.Xml.XmlDocument
Cmdlet'in çıkışı, alınan içeriğin biçimine bağlıdır.
PSObject
İstek JSON dizelerini döndürürse, Invoke-RestMethod
dizeleri temsil eden bir PSObject döndürür.
Notlar
Bazı özellikler tüm platformlarda kullanılamayabilir.
.NET Core 3.1'deki değişiklikler nedeniyle PowerShell 7.0 ve üzeri, proxy yapılandırmasını belirlemek için HttpClient.DefaultProxy özelliğini kullanır.
Bu özelliğin değeri, platformunuza bağlı olarak farklı kurallardır:
- Windows için: Ortam değişkenlerinden veya bunlar tanımlanmamışsa kullanıcının proxy ayarlarından ara sunucu yapılandırmasını okur.
- macOS için: Ortam değişkenlerinden veya bunlar tanımlanmamışsa sistemin proxy ayarlarından ara sunucu yapılandırmasını okur.
- Linux için: Ortam değişkenlerinden ara sunucu yapılandırmasını okur veya bunların tanımlanmaması durumunda, bu özellik tüm adresleri atlayan yapılandırılmamış bir örneği başlatır.
Windows ve Unix tabanlı platformlarda başlatma için DefaultProxy
kullanılan ortam değişkenleri şunlardır:
HTTP_PROXY
: HTTP isteklerinde kullanılan ara sunucunun ana bilgisayar adı veya IP adresi.HTTPS_PROXY
: HTTPS isteklerinde kullanılan ara sunucunun ana bilgisayar adı veya IP adresi.ALL_PROXY
: HTTP ve HTTPS isteklerinde kullanılan ara sunucunun ana bilgisayar adı veya IP adresi( tanımlanmamışsaHTTP_PROXY
).HTTPS_PROXY
NO_PROXY
: Ara sunucu oluşturmanın dışında tutulması gereken ana bilgisayar adlarının virgülle ayrılmış listesi.