Invoke-WebRequest
İnternet'te bir web sayfasından içerik alır.
Sözdizimi
Invoke-WebRequest
[-UseBasicParsing]
[-Uri] <Uri>
[-HttpVersion <Version>]
[-WebSession <WebRequestSession>]
[-SessionVariable <String>]
[-AllowUnencryptedAuthentication]
[-Authentication <WebAuthenticationType>]
[-Credential <PSCredential>]
[-UseDefaultCredentials]
[-CertificateThumbprint <String>]
[-Certificate <X509Certificate>]
[-SkipCertificateCheck]
[-SslProtocol <WebSslProtocol>]
[-Token <SecureString>]
[-UserAgent <String>]
[-DisableKeepAlive]
[-ConnectionTimeoutSeconds <Int32>]
[-OperationTimeoutSeconds <Int32>]
[-Headers <IDictionary>]
[-SkipHeaderValidation]
[-AllowInsecureRedirect]
[-MaximumRedirection <Int32>]
[-MaximumRetryCount <Int32>]
[-PreserveAuthorizationOnRedirect]
[-RetryIntervalSec <Int32>]
[-Method <WebRequestMethod>]
[-PreserveHttpMethodOnRedirect]
[-UnixSocket <UnixDomainSocketEndPoint>]
[-Proxy <Uri>]
[-ProxyCredential <PSCredential>]
[-ProxyUseDefaultCredentials]
[-Body <Object>]
[-Form <IDictionary>]
[-ContentType <String>]
[-TransferEncoding <String>]
[-InFile <String>]
[-OutFile <String>]
[-PassThru]
[-Resume]
[-SkipHttpErrorCheck]
[<CommonParameters>]
Invoke-WebRequest
[-UseBasicParsing]
[-Uri] <Uri>
[-HttpVersion <Version>]
[-WebSession <WebRequestSession>]
[-SessionVariable <String>]
[-AllowUnencryptedAuthentication]
[-Authentication <WebAuthenticationType>]
[-Credential <PSCredential>]
[-UseDefaultCredentials]
[-CertificateThumbprint <String>]
[-Certificate <X509Certificate>]
[-SkipCertificateCheck]
[-SslProtocol <WebSslProtocol>]
[-Token <SecureString>]
[-UserAgent <String>]
[-DisableKeepAlive]
[-ConnectionTimeoutSeconds <Int32>]
[-OperationTimeoutSeconds <Int32>]
[-Headers <IDictionary>]
[-SkipHeaderValidation]
[-AllowInsecureRedirect]
[-MaximumRedirection <Int32>]
[-MaximumRetryCount <Int32>]
[-PreserveAuthorizationOnRedirect]
[-RetryIntervalSec <Int32>]
[-Method <WebRequestMethod>]
[-PreserveHttpMethodOnRedirect]
[-UnixSocket <UnixDomainSocketEndPoint>]
[-NoProxy]
[-Body <Object>]
[-Form <IDictionary>]
[-ContentType <String>]
[-TransferEncoding <String>]
[-InFile <String>]
[-OutFile <String>]
[-PassThru]
[-Resume]
[-SkipHttpErrorCheck]
[<CommonParameters>]
Invoke-WebRequest
[-UseBasicParsing]
[-Uri] <Uri>
[-HttpVersion <Version>]
[-WebSession <WebRequestSession>]
[-SessionVariable <String>]
[-AllowUnencryptedAuthentication]
[-Authentication <WebAuthenticationType>]
[-Credential <PSCredential>]
[-UseDefaultCredentials]
[-CertificateThumbprint <String>]
[-Certificate <X509Certificate>]
[-SkipCertificateCheck]
[-SslProtocol <WebSslProtocol>]
[-Token <SecureString>]
[-UserAgent <String>]
[-DisableKeepAlive]
[-ConnectionTimeoutSeconds <Int32>]
[-OperationTimeoutSeconds <Int32>]
[-Headers <IDictionary>]
[-SkipHeaderValidation]
[-AllowInsecureRedirect]
[-MaximumRedirection <Int32>]
[-MaximumRetryCount <Int32>]
[-PreserveAuthorizationOnRedirect]
[-RetryIntervalSec <Int32>]
-CustomMethod <String>
[-PreserveHttpMethodOnRedirect]
[-UnixSocket <UnixDomainSocketEndPoint>]
[-Proxy <Uri>]
[-ProxyCredential <PSCredential>]
[-ProxyUseDefaultCredentials]
[-Body <Object>]
[-Form <IDictionary>]
[-ContentType <String>]
[-TransferEncoding <String>]
[-InFile <String>]
[-OutFile <String>]
[-PassThru]
[-Resume]
[-SkipHttpErrorCheck]
[<CommonParameters>]
Invoke-WebRequest
[-UseBasicParsing]
[-Uri] <Uri>
[-HttpVersion <Version>]
[-WebSession <WebRequestSession>]
[-SessionVariable <String>]
[-AllowUnencryptedAuthentication]
[-Authentication <WebAuthenticationType>]
[-Credential <PSCredential>]
[-UseDefaultCredentials]
[-CertificateThumbprint <String>]
[-Certificate <X509Certificate>]
[-SkipCertificateCheck]
[-SslProtocol <WebSslProtocol>]
[-Token <SecureString>]
[-UserAgent <String>]
[-DisableKeepAlive]
[-ConnectionTimeoutSeconds <Int32>]
[-OperationTimeoutSeconds <Int32>]
[-Headers <IDictionary>]
[-SkipHeaderValidation]
[-AllowInsecureRedirect]
[-MaximumRedirection <Int32>]
[-MaximumRetryCount <Int32>]
[-PreserveAuthorizationOnRedirect]
[-RetryIntervalSec <Int32>]
-CustomMethod <String>
[-PreserveHttpMethodOnRedirect]
[-UnixSocket <UnixDomainSocketEndPoint>]
[-NoProxy]
[-Body <Object>]
[-Form <IDictionary>]
[-ContentType <String>]
[-TransferEncoding <String>]
[-InFile <String>]
[-OutFile <String>]
[-PassThru]
[-Resume]
[-SkipHttpErrorCheck]
[<CommonParameters>]
Description
Cmdlet, Invoke-WebRequest
bir web sayfasına veya web hizmetine HTTP ve HTTPS istekleri gönderir. Yanıtı ayrıştırarak bağlantı, görüntü ve diğer önemli HTML öğeleri koleksiyonlarını döndürür.
Bu cmdlet PowerShell 3.0'da kullanıma sunulmuştur.
PowerShell 7.0'da başlayarak ortam Invoke-WebRequest
değişkenleri tarafından tanımlanan ara sunucu yapılandırmasını destekler. Bu makalenin Notlar bölümüne bakın.
Önemli
Bu makaledeki örnekler etki alanındaki konaklara başvurur contoso.com
. Bu, Microsoft tarafından örnekler için kullanılan kurgusal bir etki alanıdır. Örnekler, cmdlet'lerin nasıl kullanılacağını göstermek için tasarlanmıştır.
Ancak, contoso.com
siteler mevcut olmadığından örnekler çalışmaz. Örnekleri ortamınızdaki konaklara uyarlayın.
PowerShell 7.4'den başlayarak, istekler için karakter kodlaması varsayılan olarak ASCII yerine UTF-8'e ayarlı olur. Farklı bir kodlamaya ihtiyacınız varsa, üst bilgide Content-Type
özniteliğini ayarlamanız charset
gerekir.
Örnekler
Örnek 1: Web isteği gönderme
Bu örnek, Bing.com sitesine web isteği göndermek için cmdlet'ini kullanır Invoke-WebRequest
.
$Response = Invoke-WebRequest -URI https://www.bing.com/search?q=how+many+feet+in+a+mile
$Response.InputFields | Where-Object {
$_.name -like "* Value*"
} | Select-Object Name, Value
name value
---- -----
From Value 1
To Value 5280
İlk komut isteği düzenler ve yanıtı değişkene $Response
kaydeder.
İkinci komut, Name özelliğinin gibi "* Value"
olduğu herhangi bir InputField alır. Filtrelenen sonuçlar, Ad ve Değer özelliklerini seçmek için öğesine yönlendirilirSelect-Object
.
Örnek 2: Durum bilgisi olan bir web hizmeti kullanma
Bu örnekte, durum bilgisi olan Invoke-WebRequest
bir web hizmetiyle cmdlet'in nasıl kullanılacağı gösterilmektedir.
$LoginParameters = @{
Uri = 'https://www.contoso.com/login/'
SessionVariable = 'Session'
Method = 'POST'
Body = @{
User = 'jdoe'
Password = 'P@S$w0rd!'
}
}
$LoginResponse = Invoke-WebRequest @LoginParameters
$ProfileResponse = Invoke-WebRequest 'https://www.contoso.com/profile/' -WebSession $Session
için yapılan ilk çağrı Invoke-WebRequest
bir oturum açma isteği gönderir. komutu SessionVariable parametresinin değeri için değerini Session
belirtir. Komut tamamlandığında, $LoginResponse
değişken bir BasicHtmlWebResponseObject ve $Session
değişken bir WebRequestSession
nesnesi içerir. Bu, kullanıcıyı sitede günlüğe kaydeder.
kullanıcının profilini getirmek için Invoke-WebRequest
yapılan ikinci çağrı, kullanıcının sitede oturum açmasını gerektirir. değişkeninde $Session
depolanan oturum verileri, oturum açma sırasında oluşturulan siteye oturum tanımlama bilgileri sağlar.
Örnek 3: Web sayfasından bağlantı alma
Bu örnek, web sayfasındaki bağlantıları alır. Web sayfası içeriğini almak için cmdlet'ini kullanır Invoke-WebRequest
. Ardından, döndüren BasicHtmlWebResponseObject'in Invoke-WebRequest
Links özelliğini ve her bağlantının Href özelliğini kullanır.
(Invoke-WebRequest -Uri "https://aka.ms/pscore6-docs").Links.Href
Örnek 4: İstenen sayfada tanımlanan kodlamayı kullanarak dosyaya yanıt içeriği yazma
Bu örnekte, bir PowerShell belge sayfasının web sayfası içeriğini almak için cmdlet'i kullanılır Invoke-WebRequest
.
$Response = Invoke-WebRequest -Uri "https://aka.ms/pscore6-docs"
$Stream = [System.IO.StreamWriter]::new('.\docspage.html', $false, $Response.Encoding)
try {
$Stream.Write($Response.Content)
} finally {
$Stream.Dispose()
}
İlk komut sayfayı alır ve yanıt nesnesini değişkene $Response
kaydeder.
İkinci komut, yanıt içeriğini bir dosyaya yazmak için kullanılacak bir StreamWriter oluşturur. Yanıt nesnesinin Encoding özelliği, dosyanın kodlamasını ayarlamak için kullanılır.
Son birkaç komut, Content özelliğini dosyaya yazar ve StreamWriter'ı atar.
Web isteği metin içeriği döndürmezse Encoding özelliğinin null olduğunu unutmayın.
Örnek 5: Çok parçalı/form-veri dosyası gönderme
Bu örnekte, bir dosyayı gönderme olarak multipart/form-data
karşıya yükleme cmdlet'i kullanılırInvoke-WebRequest
. Dosyac:\document.txt
, ile Content-Type
text/plain
form alanı document
olarak gönderilir.
$FilePath = 'c:\document.txt'
$FieldName = 'document'
$ContentType = 'text/plain'
$FileStream = [System.IO.FileStream]::new($filePath, [System.IO.FileMode]::Open)
$FileHeader = [System.Net.Http.Headers.ContentDispositionHeaderValue]::new('form-data')
$FileHeader.Name = $FieldName
$FileHeader.FileName = Split-Path -leaf $FilePath
$FileContent = [System.Net.Http.StreamContent]::new($FileStream)
$FileContent.Headers.ContentDisposition = $FileHeader
$FileContent.Headers.ContentType = [System.Net.Http.Headers.MediaTypeHeaderValue]::Parse($ContentType)
$MultipartContent = [System.Net.Http.MultipartFormDataContent]::new()
$MultipartContent.Add($FileContent)
$Response = Invoke-WebRequest -Body $MultipartContent -Method 'POST' -Uri 'https://api.contoso.com/upload'
Örnek 6: 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önderim gerektirir multipart/form-data
. Bu örnekte bir kullanıcı profilinin güncelleştirilmesi 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-WebRequest -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. System.IO.FileInfo değeri varsa, dosya içeriği gönderilir. Diziler veya listeler gibi bir koleksiyon varsa, form alanı birden çok kez gönderilir.
Get-Item
anahtarında avatar
kullanıldığında, FileInfo
nesne değer olarak ayarlanır. Sonuç, için jdoe.png
görüntü verilerinin gönderilmesidir.
Anahtara hobbies
bir liste sağlandığında, hobbies
alan her liste öğesi için gönderimlerde bir kez bulunur.
Örnek 7: Invoke-WebRequest'ten başarılı olmayan iletileri yakalama
Başarılı olmayan bir HTTP iletisiyle (404, 500 vb.) karşılaştığında Invoke-WebRequest
, çıkış döndürmez ve sonlandırıcı bir hata oluşturur. Hatayı yakalamak ve StatusCode'unu görüntülemek için yürütmeyi bir try/catch
blok içine alabilirsiniz.
try
{
$Response = Invoke-WebRequest -Uri "www.microsoft.com/unkownhost"
# This will only execute if the Invoke-WebRequest is successful.
$StatusCode = $Response.StatusCode
} catch {
$StatusCode = $_.Exception.Response.StatusCode.value__
}
$StatusCode
404
Sonlandırma hatası, Exception nesnesinden catch
StatusCode değerini alan blok tarafından yakalanıyor.
Örnek 8: Aynı anda birden çok dosya indirme
Invoke-WebRequest
Cmdlet aynı anda yalnızca bir dosya indirebilir. Aşağıdaki örnek, aynı anda birden çok dosya indirmek üzere birden çok iş parçacığı işi oluşturmak için kullanır Start-ThreadJob
.
$baseUri = 'https://github.com/PowerShell/PowerShell/releases/download'
$files = @(
@{
Uri = "$baseUri/v7.3.0-preview.5/PowerShell-7.3.0-preview.5-win-x64.msi"
OutFile = 'PowerShell-7.3.0-preview.5-win-x64.msi'
},
@{
Uri = "$baseUri/v7.3.0-preview.5/PowerShell-7.3.0-preview.5-win-x64.zip"
OutFile = 'PowerShell-7.3.0-preview.5-win-x64.zip'
},
@{
Uri = "$baseUri/v7.2.5/PowerShell-7.2.5-win-x64.msi"
OutFile = 'PowerShell-7.2.5-win-x64.msi'
},
@{
Uri = "$baseUri/v7.2.5/PowerShell-7.2.5-win-x64.zip"
OutFile = 'PowerShell-7.2.5-win-x64.zip'
}
)
$jobs = @()
foreach ($file in $files) {
$jobs += Start-ThreadJob -Name $file.OutFile -ScriptBlock {
$params = $using:file
Invoke-WebRequest @params
}
}
Write-Host "Downloads started..."
Wait-Job -Job $jobs
foreach ($job in $jobs) {
Receive-Job -Job $job
}
Örnek 9: Üst Bilgi Doğrulama atlanıyor
Varsayılan olarak, Invoke-WebRequest
cmdlet standart tanımlı değer biçimine sahip iyi bilinen üst bilgilerin değerlerini doğrular. Aşağıdaki örnekte, bu doğrulamanın nasıl hata oluşturabileceği ve geçersiz biçimlendirilmiş değerleri tolere eden uç noktalar için değerlerin doğrulanmasından kaçınmak için SkipHeaderValidation parametresini nasıl kullanabileceğiniz gösterilmektedir.
$Uri = 'https://httpbin.org/headers'
$InvalidHeaders = @{
'If-Match' = '12345'
}
Invoke-WebRequest -Uri $Uri -Headers $InvalidHeaders
Invoke-WebRequest -Uri $Uri -Headers $InvalidHeaders -SkipHeaderValidation
Invoke-WebRequest: The format of value '12345' is invalid.
StatusCode : 200
StatusDescription : OK
Content : {
"headers": {
"Host": "httpbin.org",
"If-Match": "12345",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Microsoft Windows 10.0.19044; en-US) PowerShell/7.2.5",
"X-Amzn-Trace-Id": �
RawContent : HTTP/1.1 200 OK
Date: Mon, 08 Aug 2022 16:24:24 GMT
Connection: keep-alive
Server: gunicorn/19.9.0
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true
Content-Type: application�
Headers : {[Date, System.String[]], [Connection, System.String[]], [Server, System.String[]], [Access-Control-Allow-Origin, System.String[]]�}
Images : {}
InputFields : {}
Links : {}
RawContentLength : 249
RelationLink : {}
httpbin.org, sorun gidermeye yönelik web istekleri ve yanıtları hakkında bilgi döndüren bir hizmettir. $Uri
değişkeni, yanıttaki /headers
içerik olarak bir isteğin üst bilgilerini döndüren hizmetin uç noktasına atanır.
İstek If-Match
üst bilgisi RFC-7232 bölüm 3.1'de tanımlanır ve bu üst bilginin değerinin çevresindeki tırnak işaretleri ile tanımlanmasını gerektirir. değişkenine $InvalidHeaders
değerinin If-Match
yerine "12345"
olarak 12345
tanımlandığı için geçersiz olduğu bir karma tablo atanır.
Geçersiz üst bilgilerle çağrılması Invoke-WebRequest
, biçimlendirilmiş değerin geçersiz olduğunu bildiren bir hata döndürür. İstek uç noktaya gönderilmez.
SkipHeaderValidation parametresiyle çağrılması Invoke-WebRequest
doğrulama hatasını yoksayar ve isteği uç noktaya gönderir. Uç nokta uyumlu olmayan üst bilgi değerlerini tolere ettiğinden, cmdlet yanıt nesnesini hatasız döndürür.
Örnek 10: HTTP 2.0 kullanarak istek gönderme
Bu örnek, HTTP 2.0 protokolunu kullanarak bir web sayfasındaki bağlantıları alır. Web sayfası içeriğini almak için cmdlet'ini kullanır Invoke-WebRequest
. Ardından, döndüren BasicHtmlWebResponseObject'in Invoke-WebRequest
Links özelliğini ve her bağlantının Href özelliğini kullanır.
(Invoke-WebRequest -Uri 'https://aka.ms/pscore6-docs' -HttpVersion 2.0).Links.Href
Örnek 11: Unix yuva uygulamasına istek gönderme
Docker gibi bazı uygulamalar, iletişim için unix yuvasını kullanıma sunar. Bu örnek, Docker API'sini kullanarak Docker görüntülerinin listesini sorgular. Cmdlet, Unix yuvasını kullanarak Docker daemon'a bağlanır.
Invoke-WebRequest -Uri "http://localhost/v1.40/images/json/" -UnixSocket "/var/run/docker.sock"
Parametreler
-AllowInsecureRedirect
HTTPS'den HTTP'ye yeniden yönlendirmeye izin verir. Varsayılan olarak, HTTPS'den HTTP'ye yönlendirilen tüm istekler bir hatayla sonuçlanır ve şifrelenmemiş bağlantılar üzerinden yanlışlıkla düz metin olarak iletişim kurmasını önlemek için istek durduruldu. Bu davranışı kendi riski altında geçersiz kılmak için AllowInsecureRedirect parametresini kullanın.
Bu parametre PowerShell 7.4'e eklendi.
Tür: | SwitchParameter |
Position: | Named |
Default value: | False |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-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ği sağlandığında hata oluşur ve şifrelenmemiş bağlantılar üzerinden gizli dizilerin yanlışlıkla düz metin olarak iletilmesini önlemek için istek durdurulur. Bu davranışı kendi riski altında 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ğlayabilen eski sistemlerle uyumluluk için sağlanır. Kendi riskinizle kullanın.
Bu özellik PowerShell 6.0.0'a eklendi.
Tür: | SwitchParameter |
Position: | Named |
Default value: | False |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-Authentication
İstek için kullanılacak açık kimlik doğrulama türünü belirtir. Varsayılan değer Yok'tır. 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 olarak gönderilir.Bearer
: Belirteç parametresini gerektirir. Sağlanan belirteçle bir RFC 6750Authorization: Bearer
üst bilgisi gönderir.OAuth
: Belirteç parametresini gerektirir. Sağlanan belirteçle bir RFC 6750Authorization: Bearer
üst bilgisi gönderir.
Kimlik Doğrulaması sağlamak, Ü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 eklendi.
Tür: | WebAuthenticationType |
Kabul edilen değerler: | None, Basic, Bearer, OAuth |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-Body
İsteğin gövdesini belirtir. Gövde, üst bilgileri izleyen isteğin içeriğidir.
Gövde değerini öğesine Invoke-WebRequest
de yöneltebilirsiniz.
Gövde parametresi, sorgu parametrelerinin listesini veya yanıtın içeriğini belirtmek için kullanılabilir. Sorgu parametreleri için, cmdlet anahtar-değer çiftlerini kodlamak için System.Net.WebUtility.UrlEncode yöntemi yöntemini kullanır. URL'lerin kodlama dizeleri hakkında daha fazla bilgi için urlEncode() yöntem başvurusuna bakın.
Giriş bir POST isteği ve gövde bir Dize olduğunda, ilk eşittir işaretinin (=
) solundaki değer form verilerinde bir anahtar olarak ayarlanır ve kalan metin değer olarak ayarlanır. Birden çok anahtar belirtmek için Gövde için karma tablo gibi bir IDictionary nesnesi kullanın.
Giriş bir GET isteği olduğunda ve gövde bir IDictionary (genellikle bir karma tablosu) olduğunda, gövde sorgu parametreleri olarak URI'ye eklenir. Diğer istek türleri (PATCH gibi) için gövde, url ile kodlanmış değerleriyle standart name=value
biçimde istek gövdesinin değeri olarak ayarlanır.
Giriş bir System.Xml.XmlNode nesnesi olduğunda ve XML bildirimi bir kodlama belirtiyorsa, ContentType parametresi tarafından geçersiz kılınmadığı sürece istekteki veriler için bu kodlama kullanılır.
Body parametresi de bir System.Net.Http.MultipartFormDataContent
nesneyi kabul eder. Bu, multipart/form-data
istekleri kolaylaştırır. Gövde için Bir MultipartFormDataContent nesnesi sağlandığında, ContentType, Headers veya WebSession parametrelerine sağlanan İçerikle ilgili tüm üst bilgiler MultipartFormDataContent nesnesinin İçerik üst bilgileri tarafından geçersiz kılınır. Bu özellik PowerShell 6.0.0'a eklendi.
Tür: | Object |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | True |
Joker karakterleri kabul et: | 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 () sürücüsündeki cmdlet'ini kullanın Get-PfxCertificate
veya kullanınGet-ChildItem
.Cert:
Sertifika geçerli değilse veya yeterli yetkiye sahip değilse, komut başarısız olur.
Tür: | X509Certificate |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | 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. Sertifikalar yalnızca yerel kullanıcı hesaplarıyla eşlenebilir, etki alanı hesaplarıyla eşlenemez.
Sertifika parmak izini görmek için veya Get-ChildItem
komutunu kullanarak Get-Item
içinde Cert:\CurrentUser\My
sertifikayı bulun.
Not
Bu özellik yalnızca Windows işletim sistemi platformlarında desteklenir.
Tür: | String |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-ConnectionTimeoutSeconds
İ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 konak adı içeriyorsa ve ConnectionTimeoutSeconds değerini sıfırdan büyük ancak 15 saniyeden kısa bir değere ayarlarsanız, WebException'ın atılması 15 saniye veya daha fazla sürebilir ve isteğiniz zaman aşımına uğrar.
Bu parametre, PowerShell 7.4'teki TimeoutSec parametresinin yerini aldı. TimeoutSec'i ConnectionTimeoutSeconds için diğer ad olarak kullanabilirsiniz.
Tür: | Int32 |
Diğer adlar: | TimeoutSec |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-ContentType
Web isteğinin içerik türünü belirtir.
ContentType değeri kodlama biçimini (olarakcharset
) içeriyorsa, cmdlet web isteğinin gövdesini kodlamak için bu biçimi kullanır. ContentType bir kodlama biçimi belirtmezse, bunun yerine varsayılan kodlama biçimi kullanılır. Kodlama biçimine sahip bir ContentType örneği, Latin/Kiril alfabesini belirten şeklindedirtext/plain; charset=iso-8859-5
.
Bu parametre atlanırsa ve istek yöntemi POST veya PUT ise, Invoke-WebRequest
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 MultipartFormDataContent nesnesi sağlandığında ContentType geçersiz kılınır.
PowerShell 7.4'den başlayarak, üst bilgiyi tanımlamak Content-Type
için hem bu parametreyi hem de Headers parametresini kullanırsanız, ContentType parametresinde belirtilen değer kullanılır.
Tür: | String |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | 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 bir PSCredential nesnesi 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 kimlik doğrulaması 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?.
Tür: | PSCredential |
Position: | Named |
Default value: | Current user |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-CustomMethod
Web isteği için kullanılan özel bir yöntemi belirtir. Uç nokta için gereken İstek Yöntemi, Yöntem'de kullanılabilir bir seçenek değilse bu kullanılabilir. Method ve CustomMethod birlikte kullanılamaz.
Bu örnek, API'ye http TEST
isteğinde bulunur:
Invoke-WebRequest -uri 'https://api.contoso.com/widget/' -CustomMethod 'TEST'
Bu özellik PowerShell 6.0.0'a eklendi.
Tür: | String |
Diğer adlar: | CM |
Position: | Named |
Default value: | None |
Gerekli: | True |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-DisableKeepAlive
cmdlet'in HTTP üst bilgisindeki KeepAlive değerini False olarak ayarladığını gösterir. Varsayılan olarak KeepAlive True'dur. KeepAlive , sonraki istekleri kolaylaştırmak için sunucuya kalıcı bir bağlantı kurar.
Tür: | SwitchParameter |
Position: | Named |
Default value: | False |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-Form
Sözlüğü gönderime multipart/form-data
dönüştürür. Form Gövde ile kullanılamayabilir.
ContentType kullanılırsa yoksayılır.
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ı filename özelliği olarak gönderilir. MIME türü 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 Diziler veya Listeler 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 tags
alan, , ve 2017
alanlarının her biri Vacation
Italy
için bir kez, formda üç kez sağlanı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 eklendi.
Tür: | IDictionary |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-Headers
Web isteğinin üst bilgilerini belirtir. Bir karma tablo veya sözlük girin.
Body için MultipartFormDataContent nesnesi sağlandığında gibi içerikle ilgili üst bilgiler Content-Type
geçersiz kılınır.
PowerShell 7.4'den başlayarak, üst bilgiyi tanımlamak Content-Type
ve ContentType parametresini kullanmak için bu parametreyi kullanırsanız, ContentType parametresinde belirtilen değer kullanılır.
Tür: | IDictionary |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-HttpVersion
İstek için kullanılan HTTP sürümünü belirtir. Varsayılan değer: 1.1
.
Geçerli değerler:
- 1.0
- 1.1
- 2.0
- 3.0
Tür: | Version |
Position: | Named |
Default value: | 1.1 |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | 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.
Tür: | String |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-MaximumRedirection
Bağlantı başarısız olmadan önce PowerShell'in bir bağlantıyı kaç kez alternatif bir Tekdüzen Kaynak Tanımlayıcısı'na (URI) yönlendirecek olduğunu belirtir. Varsayılan değer 5'tir. 0 (sıfır) değeri tüm yeniden yönlendirmeyi engeller.
Tür: | Int32 |
Position: | Named |
Default value: | 5 |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-MaximumRetryCount
400 ile 599 arasında (dahil veya 304) bir hata kodu alındığında PowerShell'in bağlantıyı kaç kez yeniden denemesi olduğunu belirtir. Ayrıca, yeniden deneme sayısını belirtmek için bkz . RetryIntervalSec parametresi.
Tür: | Int32 |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | 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.
Tür: | WebRequestMethod |
Kabul edilen değerler: | Default, Get, Head, Post, Put, Delete, Trace, Options, Merge, Patch |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-NoProxy
Cmdlet'in hedefe ulaşmak için ara sunucu kullanmaması gerektiğini gösterir. Ortamda yapılandırılan ara sunucuyu atlamanız gerektiğinde bu anahtarı kullanın. Bu özellik PowerShell 6.0.0'a eklendi.
Tür: | SwitchParameter |
Position: | Named |
Default value: | False |
Gerekli: | True |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-OperationTimeoutSeconds
Bu zaman aşımı, bir akış içindeki veri okuma işlemleri için geçerlidir, bir bütün olarak akış süresi için geçerli değildir. Varsayılan değer olan 0, süresiz bir zaman aşımı belirtir.
Değeri 30 saniye olarak ayarlamak, akıştaki veriler arasındaki 30 saniyeden uzun gecikmelerin isteği sonlandırdığını gösterir. İndirmesi birkaç dakika süren büyük bir dosya, akış 30 saniyeden uzun süre durmadığı sürece sonlandırılamaz.
Tür: | Int32 |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-OutFile
Varsayılan olarak sonuçları Invoke-WebRequest
işlem hattına döndürür. OutFile parametresini kullandığınızda, sonuçlar belirtilen dosyaya kaydedilir ve işlem hattına döndürülür. Bir yol ve dosya adı girin. Sonuçları bir dosyaya ve işlem hattına göndermek için Passthru parametresini ekleyin.
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 ('
).
PowerShell 7.4'den başlayarak, dosya adı olmadan bir klasör yolu belirtebilirsiniz. Bunu yaptığınızda, komut herhangi bir yeniden yönlendirmeden sonra çözümlenen URI'nin son kesiminden dosya adını kullanır. OutFile için bir klasör yolu belirttiğinizde Resume parametresini kullanamazsınız.
Tür: | String |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-PassThru
Cmdlet'in sonuçları döndürdüğünü ve bunları bir dosyaya yazdığını gösterir. Bu parametre yalnızca komutta OutFile parametresi de kullanıldığında geçerlidir.
Not
PassThru parametresini kullandığınızda, çıkış işlem hattına yazılır ancak dosya oluşturulmaz. Bu, PowerShell 7.5-preview.4'te düzeltildi. Daha fazla bilgi için bkz . PowerShell Sorunu #15409.
Tür: | SwitchParameter |
Position: | Named |
Default value: | False |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | 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 soyarak Authorization
alır. 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 eklendi.
Tür: | SwitchParameter |
Position: | Named |
Default value: | False |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-PreserveHttpMethodOnRedirect
Cmdlet'in yeniden yönlendirmeler arasında isteğin yöntemini koruması gerektiğini gösterir.
Varsayılan olarak, cmdlet yeniden yönlendirildiğinde yöntemini olarak GET
değiştirir. Bu parametrenin belirtilmesi, hedeflenen yöntemin yeniden yönlendirme ile kullanılabildiğinden emin olmak için bu mantığı devre dışı bırakır.
Bu özellik PowerShell 7.4'e eklendi.
Tür: | SwitchParameter |
Position: | Named |
Default value: | False |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-Proxy
doğrudan İnternet kaynağına bağlanmak yerine istek için bir ara sunucu belirtir. Ağ proxy sunucusunun URI'sini girin.
Tür: | Uri |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-ProxyCredential
Proxy parametresi tarafından belirtilen ara sunucuyu kullanma iznine sahip bir kullanıcı hesabı belirtir. Varsayılan, mevcut kullanıcıdır.
veya Domain01\User01
gibi User01
bir kullanıcı adı yazın veya cmdlet tarafından Get-Credential
oluşturulan gibi bir PSCredential nesnesi girin.
Bu parametre yalnızca komutta Proxy parametresi de kullanıldığında geçerlidir. ProxyCredential ve ProxyUseDefaultCredentials parametrelerini aynı komutta kullanamazsınız.
Tür: | PSCredential |
Position: | Named |
Default value: | Current user |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | 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.
Tür: | SwitchParameter |
Position: | Named |
Default value: | False |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-Resume
Kısmi bir dosyayı indirmeye devam etmek için en iyi çabayı gösterir. Özgeçmiş için OutFile gerekir.
Özgeçmiş yalnızca yerel dosya ve uzak dosyanın boyutu üzerinde çalışır ve yerel dosya ile uzak dosyanın aynı olduğu konusunda 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 tamamlanmış olduğunu varsayar.
Yerel dosya boyutu uzak dosya boyutundan büyükse, yerel dosyanın üzerine yazılır ve uzak dosyanın tamamı yeniden indirilir. Bu davranış, Özgeçmiş olmadan OutFile kullanmakla aynıdır.
Uzak sunucu indirmeye devam etme işlemini desteklemiyorsa yerel dosyanın üzerine yazılır ve uzak dosyanın tamamı yeniden indirilir. Bu davranış, Özgeçmiş olmadan OutFile kullanmakla aynıdır.
Yerel dosya yoksa, yerel dosya oluşturulur ve uzak dosyanın tamamı indirilir. Bu davranış, Özgeçmiş olmadan OutFile kullanmakla aynıdır.
Bu özellik PowerShell 6.1.0'a eklendi.
Tür: | SwitchParameter |
Position: | Named |
Default value: | False |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | 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. Değer ile [int]::MaxValue
arasında 1
olmalıdır.
Hata kodu 429 olduğunda ve yanıt üst bilgilerinde Retry-After özelliğini içeriyorsa, cmdlet bu parametre belirtiliyor olsa bile yeniden deneme aralığı için bu değeri kullanır.
Tür: | Int32 |
Position: | Named |
Default value: | 5 |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-SessionVariable
Bu cmdlet'in bir web isteği oturumu oluşturduğu ve bunu değere kaydettiği bir değişken belirtir.
Dolar işareti ($
) simgesi olmadan bir değişken adı girin.
Bir oturum değişkeni belirttiğinizde, Invoke-WebRequest
bir web isteği oturum nesnesi oluşturur ve bunu PowerShell oturumunuzda belirtilen ada sahip bir değişkene atar. Komutu tamamlar tamamlamaz, değişkeni oturumunuzda kullanabilirsiniz.
PowerShell 7.4'e geçmeden önce 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.
PowerShell 7.4'te başlayarak, sonraki istekte oturumun özellikleri geçersiz kılınmadıkça web isteği oturumu kalıcı olur. Olduklarında, cmdlet oturumu yeni değerlerle yeniden oluşturur. Kalıcı oturumlar, yinelenen isteklerin yükünü azaltarak çok daha hızlı olmalarını sağlar.
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.
Aynı komutta SessionVariable ve WebSession parametrelerini kullanamazsınız.
Tür: | String |
Diğer adlar: | SV |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-SkipCertificateCheck
Sertifika doğrulama denetimlerini atlar. Bu süre sonu, iptal, güvenilen kök yetkili vb. gibi tüm doğrulamaları içerir.
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 konaklara karşı kullanılmak üzere tasarlanmıştır. Kendi riskinizle kullanın.
Bu özellik PowerShell 6.0.0'a eklendi.
Tür: | SwitchParameter |
Position: | Named |
Default value: | False |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-SkipHeaderValidation
Cmdlet'in doğrulama olmadan isteğe üst bilgi eklemesi gerektiğini gösterir.
Bu anahtar, standartlara uygun olmayan ü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 anahtar 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.
Tür: | SwitchParameter |
Position: | Named |
Default value: | False |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | 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ıymış gibi yazılır.
Bu parametre PowerShell 7'de kullanıma sunulmuştur.
Tür: | SwitchParameter |
Position: | Named |
Default value: | False |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | 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ı bir numaralandırma olarak tanımlanır. Bu parametreyi kullanarak birden çok bayrak ayarlamak için birden çok değeri birlikte 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 değerler üzerinde sekme tamamlama özelliğini kullanmanıza da olanak tanır. Tüm platformlarda birden çok seçenek tanımlayamayabilirsiniz.
Not
Windows dışı platformlarda sağlama Tls
veya Tls12
bir seçenek olarak mümkün olmayabilir. Tls13
desteği 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.
Tür: | WebSslProtocol |
Kabul edilen değerler: | Default, Tls, Tls11, Tls12 |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | 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 el ile sağlamak için aşağıdakileri kullanın:
Invoke-WebRequest -Uri $uri -Authentication OAuth -Token (Read-Host -AsSecureString)
Bu parametre PowerShell 6.0'da kullanıma sunulmuştur.
Tür: | SecureString |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-TransferEncoding
Aktarım kodlaması HTTP yanıt üst bilgisi için bir değer belirtir. Bu parametrenin kabul edilebilir değerleri şunlardır:
Chunked
Compress
Deflate
GZip
Identity
Tür: | String |
Kabul edilen değerler: | chunked, compress, deflate, gzip, identity |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-UnixSocket
Bağlanacak Unix yuvasının adını belirtir. Bu parametre Unix tabanlı sistemlerde ve Windows sürüm 1803 ve sonraki sürümlerde desteklenir. Unix yuvalarının Windows desteği hakkında daha fazla bilgi için AF_UNIX ile Windows/WSL Birlikte Çalışma blog gönderisine bakın.
Bu parametre PowerShell 7.4'e eklendi.
Tür: | UnixDomainSocketEndPoint |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-Uri
Web isteğinin gönderildiği internet kaynağının Tekdüzen Kaynak Tanımlayıcısını (URI) belirtir. Bir URI girin. Bu parametre yalnızca HTTP veya HTTPS'i destekler.
Bu parametre zorunludur. Parametre adı Uri isteğe bağlıdır.
Tür: | Uri |
Position: | 0 |
Default value: | None |
Gerekli: | True |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | 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 eklenmiştir ve cmdlet'in işlemi üzerinde herhangi bir etkisi yoktur.
Tür: | SwitchParameter |
Position: | Named |
Default value: | False |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-UseDefaultCredentials
Cmdlet'in geçerli kullanıcının kimlik bilgilerini kullanarak web isteğini gönderdiğini gösterir. Bu, Kimlik Doğrulaması veya Kimlik Bilgileri ile kullanılamaz ve tüm platformlarda desteklenmeyebilir.
Tür: | SwitchParameter |
Position: | Named |
Default value: | False |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | 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.
Örneğin, aşağıdaki komut Internet Explorer için kullanıcı aracısı dizesini kullanır: Invoke-WebRequest -Uri https://website.com/ -UserAgent ([Microsoft.PowerShell.Commands.PSUserAgent]::InternetExplorer)
Tür: | String |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | 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. Gibi içerikle ilgili üst bilgilerContent-Type
, Body için MultipartFormDataContent nesnesi sağlandığında da geçersiz kılınır.
Uzak oturumdan farklı olarak, 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-WebRequest
değişken adı girin. Invoke-WebRequest
oturumu oluşturur ve değişkene kaydeder. Sonraki komutlarda, WebSession parametresinin değeri olarak değişkenini kullanın.
Aynı komutta SessionVariable ve WebSession parametrelerini kullanamazsınız.
Tür: | WebRequestSession |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
Girişler
Web isteğinin gövdesini bu cmdlet'e iletebilirsiniz.
Çıkışlar
Bu cmdlet, web isteğinin sonucunu temsil eden yanıt nesnesini döndürür.
Notlar
PowerShell için aşağıdaki diğer adları Invoke-WebRequest
içerir:
- Tüm platformlar:
iwr
PowerShell 6.0.0 Invoke-WebRequest
ile başlayarak yalnızca temel ayrıştırma desteklenir.
Daha fazla bilgi için bkz . BasicHtmlWebResponseObject.
.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 platformunuz tarafından belirlenir:
- Windows için: Ortam değişkenlerinden ara sunucu yapılandırmasını okur. Bu değişkenler tanımlanmamışsa, özellik kullanıcının proxy ayarlarından türetilir.
- macOS için: Ortam değişkenlerinden ara sunucu yapılandırmasını okur. Bu değişkenler tanımlanmamışsa özelliği sistemin proxy ayarlarından türetilir.
- Linux için: Ortam değişkenlerinden ara sunucu yapılandırmasını okur. Bu değişkenler tanımlanmamışsa özelliği, 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ış veyaHTTPS_PROXY
tanımlanmamışsaHTTP_PROXY
).NO_PROXY
: Ara sunucu oluşturmanın dışında tutulması gereken ana bilgisayar adlarının virgülle ayrılmış listesi.
PowerShell 7.4, Brotli sıkıştırma algoritması için destek ekledi.
İlişkili Bağlantılar
PowerShell