Invoke-WebRequest (Microsoft.PowerShell.Utility)


Invoke-WebRequest

Modül:
Microsoft.PowerShell.Utility

İnternetteki 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>]

Tanım

Invoke-WebRequest cmdlet'i, bir web sayfasına veya web hizmetine HTTP ve HTTPS isteklerini gönderir. Yanıtı ayrıştırır ve bağlantı, resim ve diğer önemli HTML öğelerinin koleksiyonlarını döndürür.

Bu cmdlet PowerShell 3.0'da tanıtıldı.

PowerShell 7.0'dan itibaren Invoke-WebRequest, ortam değişkenleri tarafından tanımlanan proxy yapılandırmasını destekler. Bu makalenin Notlar bölümüne bakın.

Bu önemli

Bu makaledeki örnekler contoso.com etki alanındaki ana bilgisayarlara referans vermektedir. Bu, Microsoft tarafından örnekler için kullanılan hayali bir alandır. Örnekler cmdlet'lerin nasıl kullanılacağını göstermek için tasarlanmıştır. Ancak contoso.com siteleri mevcut olmadığından örnekler çalışmaz. Örnekleri ortamınızdaki ana bilgisayarlara uyarlayın.

PowerShell 7,4'ten başlayarak, istekler için karakter kodlaması varsayılan olarak ASCII yerine UTF-8'e ayarlanmıştır. Farklı bir kodlamaya ihtiyacınız varsa Content-Type başlığındaki charset özelliğini ayarlamanız gerekir.

Örnekler

Örnek 1: Bir web isteği gönderin

Bu örnek, Bing.com sitesine bir web isteği göndermek için Invoke-WebRequest cmdlet'ini kullanır.

$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 yayınlar ve yanıtı $Response değişkenine kaydeder.

İkinci komut, Ad özelliğinin "* Value" gibi olduğu herhangi bir InputField'i alır. Filtrelenen sonuçlar, Ad ve Value özelliklerini seçmek için Select-Object'e aktarılır.

Örnek 2: Durum bilgisi olan bir web hizmeti kullanın

Bu örnek, Invoke-WebRequest cmdlet'inin durum bilgisi olan bir web hizmetiyle nasıl kullanılacağını gösterir.

$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

Invoke-WebRequest'e yapılan ilk çağrı bir oturum açma isteği gönderir. Komut, SessionVariable parametresinin değeri için bir Session değeri belirtir. Komut tamamlandığında, $LoginResponse değişkeni bir BasicHtmlWebResponseObject içerir ve $Session değişkeni bir WebRequestSession nesnesi içerir. Bu, kullanıcının siteye giriş yapmasını sağlar.

Invoke-WebRequest'e yapılan ikinci çağrı, kullanıcının sitede oturum açmasını gerektiren kullanıcının profilini getirir. $Session değişkeninde saklanan oturum verileri, siteye giriş sırasında oluşturulan oturum çerezlerini sağlar.

Örnek 3: Bir web sayfasından bağlantı alma

Bu örnek bir web sayfasındaki bağlantıları alır. Web sayfası içeriğini almak için Invoke-WebRequest cmdlet'ini kullanır. Daha sonra, Invoke-WebRequest'in döndürdüğü BasicHtmlWebResponseObject'in 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 yanıt içeriğini bir dosyaya yazın

Bu örnek, bir PowerShell dokümantasyon sayfasının web sayfası içeriğini almak için Invoke-WebRequest cmdlet'ini kullanır.

$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 $Response değişkenine 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 ardından StreamWriter'ı ortadan kaldırır.

Web isteği metin içeriğini döndürmezse Kodlama özelliğinin boş olduğunu unutmayın.

Örnek 5: Çok parçalı/form veri dosyası gönderin

Bu örnek, bir dosyayı multipart/form-data gönderimi olarak yüklemek için Invoke-WebRequest cmdlet'ini kullanır. c:\document.txt dosyası, text/plainContent-Type ile birlikte document form alanı olarak gönderilir. kodu >.

$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 karışık içeriği yüklemek için multipart/form-data gönderimlerini gerektirir. Bu örnek, bir kullanıcı profilinin güncellenmesini göstermektedir.

$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, doğum günü ve hobiler. API, avatar alanına kullanıcı profili resminin sağlanmasını bekliyor. API aynı zamanda birden fazla hobi girişinin aynı formda gönderilmesini de kabul eder.

$Form HashTable'ı oluştururken anahtar adları form alanı adları olarak kullanılır. Varsayılan olarak HashTable'ın değerleri dizelere dönüştürülür. System.IO.FileInfo değeri mevcutsa dosya içerikleri gönderilir. Diziler veya listeler gibi bir koleksiyon mevcutsa form alanı birden çok kez gönderilir.

avatar anahtarındaki Get-Item kullanıldığında, FileInfo nesnesi değer olarak ayarlanır. Sonuç olarak jdoe.png için resim verileri gönderildi.

hobiler anahtarına liste verilerek, hobiler alanı her liste öğesi için bir kez gönderimlerde bulunur.

Örnek 7: Invoke-WebRequest'ten başarılı olmayan mesajları yakalayın

Invoke-WebRequest başarısız bir HTTP mesajıyla (404, 500, vb.) karşılaştığında hiçbir çıktı döndürmez ve bir sonlandırma hatası atar. Hatayı yakalamak ve StatusCode'u görüntülemek için yürütmeyi bir try/catch bloğunun 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 StatusCode'u alan catch bloğu tarafından yakalanır.

Örnek 8: Aynı anda birden fazla dosya indirin

Invoke-WebRequest cmdlet'i aynı anda yalnızca bir dosya indirebilir. Aşağıdaki örnek, aynı anda birden çok dosyayı indirmek üzere birden çok iş parçacığı işi oluşturmak için Start-ThreadJob'u kullanır.

$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: Başlık Doğrulamasını Atlama

Varsayılan olarak Invoke-WebRequest cmdlet'i, standartlarla tanımlanmış bir değer biçimine sahip, iyi bilinen üstbilgilerin değerlerini doğrular. Aşağıdaki örnek, bu doğrulamanın nasıl hata oluşturabileceğini ve geçersiz biçimlendirilmiş değerleri tolere eden uç noktalara ilişkin değerlerin doğrulanmasını önlemek için SkipHeaderValidation parametresini nasıl kullanabileceğinizi gösterir.

$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, web istekleri ve sorun gidermeye yönelik yanıtlar hakkında bilgi döndüren bir hizmettir. $Uri değişkeni, hizmetin /headers uç noktasına atanır ve bu, yanıttaki içerik olarak bir isteğin başlıklarını döndürür.

If-Match istek üstbilgisi RFC-7232 bölüm 3.1'de tanımlanmıştır ve bu üstbilginin değerinin çevreleyen tırnak işaretleri ile tanımlanmasını gerektirir. $InvalidHeaders değişkenine, If-Match değerinin geçersiz olduğu bir karma tablosu atanır çünkü " yerine 12345 olarak tanımlanmıştır. 12345".

Invoke-WebRequest'i geçersiz başlıklarla çağırmak, biçimlendirilmiş değerin geçersiz olduğunu bildiren bir hata döndürür. İstek uç noktaya gönderilmez.

SkipHeaderValidation parametresiyle Invoke-WebRequest'i çağırmak, doğrulama hatasını yok sayar ve isteği uç noktaya gönderir. Uç nokta uyumlu olmayan başlık değerlerini tolere ettiğinden, cmdlet yanıt nesnesini hatasız olarak döndürür.

Örnek 10: HTTP 2.0 kullanarak bir istek gönderin

Bu örnek, HTTP 2.0 protokolünü kullanarak bir web sayfasındaki bağlantıları alır. Web sayfası içeriğini almak için Invoke-WebRequest cmdlet'ini kullanır. Daha sonra, Invoke-WebRequest'in döndürdüğü BasicHtmlWebResponseObject'in 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 soket uygulamasına istek gönderme

Docker gibi bazı uygulamalar iletişim için bir Unix soketini kullanıma sunar. Bu örnek, Docker API'sini kullanarak Docker görüntülerinin bir listesini sorgular. Cmdlet, Unix soketini kullanarak Docker arka plan programına bağlanır.

Invoke-WebRequest -Uri "http://localhost/v1.40/images/json/" -UnixSocket "/var/run/docker.sock"

Parametreler

-AllowInsecureRedirect

HTTPS'den HTTP'ye yönlendirmeye izin verir. Varsayılan olarak, HTTPS'den HTTP'ye yönlendirilen herhangi bir istek bir hatayla sonuçlanır ve şifrelenmemiş bağlantılar üzerinden yanlışlıkla düz metinle iletişim kurulmasını önlemek için istek iptal edilir. Bu davranışı geçersiz kılmak için risk size ait olmak üzere AllowInsecureRedirect parametresini kullanın.

Bu parametre PowerShell 7.4'e eklenmiştir.

Tip :

SwitchParameter

Konum:

Adlandırılmış

Varsayılan değer:

False

Gerekli:

False

Boru hattı girişini kabul edin:

False

Joker karakterleri kabul et:

False

-AllowUnencryptedAuthentication

Kimlik bilgilerinin ve sırların şifrelenmemiş bağlantılar üzerinden gönderilmesine izin verir. Varsayılan olarak, Kimlik Bilgisi veya herhangi bir Kimlik Doğrulama seçeneğinin https:// ile başlamayan bir Uri ile sağlanması bir hatayla sonuçlanır ve gizli bilgilerin şifrelenmemiş bağlantılar üzerinden yanlışlıkla düz metin olarak iletilmesini önlemek için istek iptal edilir. Riski size ait olmak üzere bu davranışı geçersiz kılmak için AllowUnencryptedAuthentication parametresini sağlayın.

Uyarı

Bu parametrenin kullanılması güvenli değildir ve önerilmez. Yalnızca şifreli bağlantılar sağlayamayan eski sistemlerle uyumluluk için sağlanmıştır. Riski size ait olmak üzere kullanın.

Bu özellik PowerShell 6.0.0'da eklenmiştir.

Tip :

SwitchParameter

Konum:

Adlandırılmış

Varsayılan değer:

False

Gerekli:

False

Boru hattı girişini kabul edin:

False

Joker karakterleri kabul et:

False

-Authentication

İstek için kullanılacak açık kimlik doğrulama türünü belirtir. Varsayılan Hiçbiri'dir. Authentication parametresi UseDefaultCredentials parametresiyle birlikte kullanılamaz.

Mevcut Kimlik Doğrulama Seçenekleri:

  • Yok: Bu, Kimlik Doğrulama sağlanmadığında varsayılan seçenektir. Açık bir kimlik doğrulama kullanılmaz.
  • Temel: Kimlik Bilgisi gerektirir. Kimlik bilgileri, base64(user:password) biçiminde bir RFC 7617 Temel Kimlik Doğrulama Yetkilendirme: Temel başlığı olarak gönderilir.
  • Taşıyıcı: Jeton parametresini gerektirir. Sağlanan jetonla birlikte bir RFC 6750 Yetkilendirme: Taşıyıcı başlığını gönderir.
  • OAuth: Jeton parametresini gerektirir. Sağlanan jetonla birlikte bir RFC 6750 Yetkilendirme: Taşıyıcı başlığını gönderir.

Kimlik Doğrulama'nın sağlanması, Başlıklar'a sağlanan veya WebSession'a dahil edilen tüm Yetkilendirme başlıklarını geçersiz kılar.

Bu özellik PowerShell 6.0.0'da eklenmiştir.

Tip :

WebKimlik Doğrulama Türü

Kabul edilen değerler:

Yok, Temel, Taşıyıcı, OAuth

Konum:

Adlandırılmış

Varsayılan değer:

None

Gerekli:

False

Boru hattı girişini kabul edin:

False

Joker karakterleri kabul et:

False

-Body

İsteğin gövdesini belirtir. Gövde, başlıkları takip eden isteğin içeriğidir. Ayrıca Invoke-WebRequest'e bir gövde değeri aktarabilirsiniz.

Body parametresi, sorgu parametrelerinin bir listesini belirtmek veya yanıtın içeriğini belirtmek için kullanılabilir. Sorgu parametreleri için cmdlet, anahtar/değer çiftlerini kodlamak üzere System.Net.WebUtility.UrlEncode yöntem yöntemini kullanır. URL'lere yönelik dizeleri kodlama hakkında daha fazla bilgi için UrlEncode() yöntemi referansına bakın.

Giriş bir POST isteği olduğunda 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 amacıyla 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 URI'ye sorgu parametreleri olarak eklenir. Diğer istek türleri için (PATCH gibi), gövde, URL kodlu değerlerle standart ad=değer biçiminde istek gövdesinin değeri olarak ayarlanır.

Giriş bir System.Xml.XmlNode nesnesi olduğunda ve XML bildirimi bir kodlamayı belirttiğinde, ContentType parametresi tarafından geçersiz kılınmadığı sürece istekteki veriler için bu kodlama kullanılır.

Body parametresi ayrıca bir System.Net.Http.MultipartFormDataContent nesnesini de kabul eder. Bu, multipart/form-data isteklerini kolaylaştırır. Body için bir MultipartFormDataContent nesnesi sağlandığında, İçerikle ilgili tüm başlıklar ContentType, Headers veya <'ye sağlanır.WebSession parametreleri, MultipartFormDataContent nesnesinin İçerik üstbilgileri tarafından geçersiz kılınır. Bu özellik PowerShell 6.0.0'da eklenmiştir.

Tip :

Nesne

Konum:

Adlandırılmış

Varsayılan değer:

None

Gerekli:

False

Boru hattı girişini kabul edin:

True

Joker karakterleri kabul et:

False

-Certificate

Güvenli bir web isteği için kullanılan istemci sertifikasını belirtir. Sertifikayı alan bir sertifikayı veya komutu veya ifadeyi içeren bir değişken girin.

Bir sertifika bulmak için Get-PfxCertificate kullanın veya Sertifika (Cert:) sürücüsündeki Get-ChildItem cmdlet'ini kullanın. Sertifika geçerli değilse veya yeterli yetkiye sahip değilse komut başarısız olur.

Tip :

X509Sertifikası

Konum:

Adlandırılmış

Varsayılan değer:

None

Gerekli:

False

Boru hattı girişini kabul edin:

False

Joker karakterleri kabul et:

False

-CertificateThumbprint

İsteği gönderme iznine sahip 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ğrulamada 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 Get-Item veya Get-ChildItem komutunu kullanarak sertifikayı Cert:\CurrentUser\My konumunda bulun.

Not

Bu özellik yalnızca Windows işletim sistemi platformlarında desteklenir.

Tip :

String

Konum:

Adlandırılmış

Varsayılan değer:

None

Gerekli:

False

Boru hattı girişini kabul edin:

False

Joker karakterleri kabul et:

False

-ConnectionTimeoutSeconds

İsteğin zaman aşımına uğramadan önce ne kadar süreyle beklemede kalabileceğini belirtir. Saniye cinsinden bir değer girin. Varsayılan değer olan 0, süresiz bir zaman aşımını belirtir.

Bir Etki Alanı Adı Sistemi (DNS) sorgusunun geri dönmesi veya zaman aşımına uğraması 15 saniye kadar sürebilir. İsteğiniz çözüm gerektiren bir ana makine adı içeriyorsa ve ConnectionTimeoutSeconds'u sıfırdan büyük ancak 15 saniyeden kısa bir değere ayarladıysanız, WebException 'un oluşması 15 saniye veya daha uzun sürebilir. Strong atılır ve isteğiniz zaman aşımına uğrar.

Bu parametre, PowerShell 7.4'teki TimeoutSec parametresinin yerini almıştır. TimeoutSec'i ConnectionTimeoutSeconds için takma ad olarak kullanabilirsiniz.

Tip :

Int32

Takma adlar:

TimeoutSec

Konum:

Adlandırılmış

Varsayılan değer:

None

Gerekli:

False

Boru hattı girişini kabul edin:

False

Joker karakterleri kabul et:

False

-ContentType

Web isteğinin içerik türünü belirtir.

ContentType değeri kodlama biçimini içeriyorsa (karakter kümesi olarak), cmdlet web isteğinin gövdesini kodlamak için bu biçimi kullanır. ContentType bir kodlama biçimi belirtmiyorsa bunun yerine varsayılan kodlama biçimi kullanılır. Kodlama biçimine sahip bir ContentType örneği text/plain; charset=iso-8859-5, Latin/Kiril alfabesini belirtir.

Bu parametre atlanırsa ve istek yöntemi POST veya PUT ise, Invoke-WebRequest içerik türünü application/x-www-form-urlencoded olarak ayarlar. Aksi takdirde çağrıda içerik türü belirtilmez.

Body için bir MultipartFormDataContent nesnesi sağlandığında ContentType geçersiz kılınır.

PowerShell 7.4'ten başlayarak, Content-Type üstbilgisini tanımlamak için hem bu parametreyi hem de Headers parametresini kullanırsanız, ContentType 'ta belirtilen değer parametresi kullanılır.

Tip :

String

Konum:

Adlandırılmış

Varsayılan değer:

None

Gerekli:

False

Boru hattı girişini kabul edin:

False

Joker karakterleri kabul et:

False

-Credential

İsteği gönderme iznine sahip bir kullanıcı hesabını belirtir. Varsayılan geçerli kullanıcıdır.

User01 veya Domain01\User01 gibi bir kullanıcı adı yazın veya Get-Credential tarafından oluşturulan bir PSCredential nesnesi girin kod > cmdlet'i seçin.

Kimlik bilgisi tek başına veya belirli Kimlik Doğrulama parametre seçenekleriyle birlikte kullanılabilir. Tek başına kullanıldığında, yalnızca uzak sunucunun bir kimlik doğrulama sorgulama isteği göndermesi durumunda uzak sunucuya kimlik bilgileri sağlar. Kimlik Doğrulama seçenekleriyle birlikte kullanıldığında kimlik bilgileri açıkça gönderilir.

Kimlik bilgileri bir PSCredential nesnesinde, parola ise SecureString olarak depolanır.

Not

SecureString veri koruması hakkında daha fazla bilgi için bkz. SecureString ne kadar güvenli?.

Tip :

PSC kimlik bilgisi

Konum:

Adlandırılmış

Varsayılan değer:

Geçerli kullanıcı

Gerekli:

False

Boru hattı girişini kabul edin:

False

Joker karakterleri kabul et:

False

-CustomMethod

Web isteği için kullanılan özel bir yöntemi belirtir. Bu, uç noktanın gerektirdiği İstek Yöntemi Yöntem'de mevcut bir seçenek değilse kullanılabilir. Method ve CustomMethod birlikte kullanılamaz.

Bu örnek, API'ye bir TEST HTTP isteğinde bulunur:

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

Bu özellik PowerShell 6.0.0'da eklenmiştir.

Tip :

String

Takma adlar:

CM

Konum:

Adlandırılmış

Varsayılan değer:

None

Gerekli:

True

Boru hattı girişini kabul edin:

False

Joker karakterleri kabul et:

False

-DisableKeepAlive

Cmdlet'in HTTP üstbilgisindeki KeepAlive değerini False olarak ayarladığını belirtir. Varsayılan olarak KeepAlive Doğru'dur. KeepAlive sonraki istekleri kolaylaştırmak için sunucuyla kalıcı bir bağlantı kurar.

Tip :

SwitchParameter

Konum:

Adlandırılmış

Varsayılan değer:

False

Gerekli:

False

Boru hattı girişini kabul edin:

False

Joker karakterleri kabul et:

False

-Form

Bir sözlüğü multipart/form-data gönderimine dönüştürür. Form, Gövde ile birlikte kullanılamaz. ContentType kullanılırsa dikkate alınmaz.

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çerikleri gönderilir. Dosyanın adı dosyaadı özelliği olarak gönderilir. MIME türü application/octet-stream olarak ayarlanmıştır. Get-Item, System.IO.FileInfo nesnesinin sağlanmasını basitleştirmek için kullanılabilir.

$Form=@{ devam=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 kabul edilir. Değer bir System.IO.FileInfo nesnesiyse ikili dosya içerikleri gönderilir. İç içe geçmiş koleksiyonlar desteklenmez.

$Form=@{ tags='Tatil', 'İtalya', '2017' resimler=Get-ChildItem 'c:\Users\jdoe\Pictures\2017-Italy' }

Yukarıdaki örnekte etiketler alanı formda üç kez sağlanmıştır; Vacation, İtalya ve 2017<'nin her biri için birer kez. /kod>. resimler alanı da 2017-İtalya klasöründeki her dosya için bir kez gönderilir. Bu klasördeki dosyaların ikili içerikleri değer olarak gönderilir.

Bu özellik PowerShell 6.1.0'da eklenmiştir.

Tip :

Sözlük

Konum:

Adlandırılmış

Varsayılan değer:

None

Gerekli:

False

Boru hattı girişini kabul edin:

False

Joker karakterleri kabul et:

False

-Headers

Web isteğinin başlıklarını belirtir. Bir karma tablosu veya sözlüğü girin.

Body için bir MultipartFormDataContent nesnesi sağlandığında, Content-Type gibi içerikle ilgili başlıklar geçersiz kılınır.

PowerShell 7.4'ten başlayarak, Content-Type başlığını tanımlamak için bu parametreyi kullanırsanız ve ContentType parametresini kullanırsanız, ContentType parametresinde belirtilen değer kullanılır.

Tip :

Sözlük

Konum:

Adlandırılmış

Varsayılan değer:

None

Gerekli:

False

Boru hattı girişini kabul edin:

False

Joker karakterleri kabul et:

False

-HttpVersion

İstek için kullanılan HTTP sürümünü belirtir. Varsayılan 1.1'dir.

Geçerli değerler şunlardır:

  • 1.0
  • 1.1
  • 2.0
  • 3.0
Tip :

Sürüm

Konum:

Adlandırılmış

Varsayılan değer:

1.1

Gerekli:

False

Boru hattı girişini kabul edin:

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.

Tip :

String

Konum:

Adlandırılmış

Varsayılan değer:

None

Gerekli:

False

Boru hattı girişini kabul edin:

False

Joker karakterleri kabul et:

False

-MaximumRedirection

Bağlantı başarısız olmadan önce PowerShell'in bir bağlantıyı alternatif bir Tekdüzen Kaynak Tanımlayıcısına (URI) kaç kez yönlendireceğini belirtir. Varsayılan değer 5'tir. 0 (sıfır) değeri tüm yeniden yönlendirmeleri engeller.

Tip :

Int32

Konum:

Adlandırılmış

Varsayılan değer:

5

Gerekli:

False

Boru hattı girişini kabul edin:

False

Joker karakterleri kabul et:

False

-MaximumRetryCount

400 ile 599 (dahil) arasında veya 304 arasında bir hata kodu alındığında PowerShell'in bağlantıyı kaç kez yeniden denediğini belirtir. Ayrıca yeniden deneme sayısını belirtmek için RetryIntervalSec parametresine bakın.

Tip :

Int32

Konum:

Adlandırılmış

Varsayılan değer:

None

Gerekli:

False

Boru hattı girişini kabul edin:

False

Joker karakterleri kabul et:

False

-Method

Web isteği için kullanılan yöntemi belirtir. Bu parametre için kabul edilebilir değerler şunlardır:

    Default
    Delete
    Get
    Head
    Merge
    Options
    Patch
    Post
    Put
    Trace

CustomMethod parametresi yukarıda listelenmeyen İstek Yöntemleri için kullanılabilir.

Tip :

WebİstekYöntemi

Kabul edilen değerler:

Varsayılan, Al, Başlık, Gönder, Koy, Sil, İzle, Seçenekler, Birleştir, Yama

Konum:

Adlandırılmış

Varsayılan değer:

None

Gerekli:

False

Boru hattı girişini kabul edin:

False

Joker karakterleri kabul et:

False

-NoProxy

Cmdlet'in hedefe ulaşmak için proxy kullanmaması gerektiğini belirtir. Ortamda yapılandırılan proxy'yi atlamanız gerektiğinde bu anahtarı kullanın. Bu özellik PowerShell 6.0.0'da eklenmiştir.

Tip :

SwitchParameter

Konum:

Adlandırılmış

Varsayılan değer:

False

Gerekli:

True

Boru hattı girişini kabul edin:

False

Joker karakterleri kabul et:

False

-OperationTimeoutSeconds

Bu zaman aşımı, bir bütün olarak akış süresi için değil, bir akış içinde okunan veriler için geçerlidir. Varsayılan değer olan 0, süresiz bir zaman aşımını belirtir.

Değerin 30 saniyeye ayarlanması, akıştaki veriler arasındaki 30 saniyeden uzun herhangi bir gecikmenin isteği sonlandıracağı anlamına gelir. İndirilmesi birkaç dakika süren büyük bir dosya, akış 30 saniyeden fazla durmadığı sürece sonlandırılmaz.

Tip :

Int32

Konum:

Adlandırılmış

Varsayılan değer:

None

Gerekli:

False

Boru hattı girişini kabul edin:

False

Joker karakterleri kabul et:

False

-OutFile

Varsayılan olarak Invoke-WebRequest sonuçları ardışık düzene döndürür. OutFile parametresini kullandığınızda, sonuçlar belirtilen dosyaya kaydedilir ve ardışık düzene döndürülmez. Bir yol ve dosya adı girin. Sonuçları bir dosyaya ve ardışık düzene göndermek için Geçit parametresini ekleyin.

Yolu atlarsanız varsayılan konum geçerli konumdur. Ad, gerçek bir yol olarak kabul edilir. Parantez ([]) içeren adlar tek tırnak (') içine alınmalıdır.

PowerShell 7,4'ten itibaren dosya adı olmadan bir klasör yolu belirtebilirsiniz. Bunu yaptığınızda komut, herhangi bir yeniden yönlendirmeden sonra çözümlenen URI'nin son bölümündeki dosya adını kullanır. OutFile için bir klasör yolu belirttiğinizde Devam Et parametresini kullanamazsınız.

Tip :

String

Konum:

Adlandırılmış

Varsayılan değer:

None

Gerekli:

False

Boru hattı girişini kabul edin:

False

Joker karakterleri kabul et:

False

-PassThru

Cmdlet'in sonuçları bir dosyaya yazmanın yanı sıra döndürdüğünü belirtir. Bu parametre yalnızca komutta OutFile parametresi de kullanıldığında geçerlidir.

Not

PassThru parametresini kullandığınızda çıktı, ardışık düzene yazılır ancak dosya oluşturulmaz. Bu, PowerShell 7.5-preview.4'te düzeltilmiştir. Daha fazla bilgi için bkz. PowerShell Sayı #15409.

Tip :

SwitchParameter

Konum:

Adlandırılmış

Varsayılan değer:

False

Gerekli:

False

Boru hattı girişini kabul edin:

False

Joker karakterleri kabul et:

False

-PreserveAuthorizationOnRedirect

Cmdlet'in, mevcut olduğunda yeniden yönlendirmeler boyunca Yetkilendirme üstbilgisini koruması gerektiğini belirtir.

Varsayılan olarak cmdlet, yeniden yönlendirmeden önce Yetkilendirme başlığını çıkarır. Bu parametrenin belirtilmesi, başlığın yeniden yönlendirme konumuna gönderilmesinin gerektiği durumlarda bu mantığı devre dışı bırakır.

Bu özellik PowerShell 6.0.0'da eklenmiştir.

Tip :

SwitchParameter

Konum:

Adlandırılmış

Varsayılan değer:

False

Gerekli:

False

Boru hattı girişini kabul edin:

False

Joker karakterleri kabul et:

False

-PreserveHttpMethodOnRedirect

Cmdlet'in, yeniden yönlendirmelerde isteğin yöntemini koruması gerektiğini belirtir.

Varsayılan olarak cmdlet, yeniden yönlendirildiğinde yöntemi GET olarak değiştirir. Bu parametrenin belirtilmesi, amaçlanan yöntemin yeniden yönlendirmeyle kullanılabilmesini sağlamak için bu mantığı devre dışı bırakır.

Bu özellik PowerShell 7.4'te eklenmiştir.

Tip :

SwitchParameter

Konum:

Adlandırılmış

Varsayılan değer:

False

Gerekli:

False

Boru hattı girişini kabul edin:

False

Joker karakterleri kabul et:

False

-Proxy

Doğrudan internet kaynağına bağlanmak yerine istek için bir proxy sunucusu belirtir. Ağ proxy sunucusunun URI'sini girin.

Tip :

Uri

Konum:

Adlandırılmış

Varsayılan değer:

None

Gerekli:

False

Boru hattı girişini kabul edin:

False

Joker karakterleri kabul et:

False

-ProxyCredential

Proxy parametresi tarafından belirtilen proxy sunucusunu kullanma iznine sahip bir kullanıcı hesabını belirtir. Varsayılan geçerli kullanıcıdır.

Kullanıcı01 veya EtkiAlanı01\Kullanıcı01 gibi bir kullanıcı adı yazın veya Get tarafından oluşturulan gibi bir PSCredential nesnesi girin. -Kimlik bilgisi cmdlet'i.

Bu parametre yalnızca komutta Proxy parametresi de kullanıldığında geçerlidir. ProxyCredential ve ProxyUseDefaultCredentials parametrelerini aynı komutta kullanamazsınız.

Tip :

PSC kimlik bilgisi

Konum:

Adlandırılmış

Varsayılan değer:

Geçerli kullanıcı

Gerekli:

False

Boru hattı girişini kabul edin:

False

Joker karakterleri kabul et:

False

-ProxyUseDefaultCredentials

Cmdlet'in, Proxy parametresi tarafından belirtilen proxy sunucusuna erişmek için geçerli kullanıcının kimlik bilgilerini kullandığını belirtir.

Bu parametre yalnızca komutta Proxy parametresi de kullanıldığında geçerlidir. ProxyCredential ve ProxyUseDefaultCredentials parametrelerini aynı komutta kullanamazsınız.

Tip :

SwitchParameter

Konum:

Adlandırılmış

Varsayılan değer:

False

Gerekli:

False

Boru hattı girişini kabul edin:

False

Joker karakterleri kabul et:

False

-Resume

Kısmi bir dosyayı indirmeye devam etmek için en iyi çabayı gösterir. Devam ettirmek için OutFile gerekir.

Devam Et yalnızca yerel dosyanın ve uzak dosyanın boyutunda çalışır ve yerel dosya ile uzak dosyanın aynı olduğuna dair başka bir doğrulama gerçekleştirmez.

Yerel dosya boyutu uzak dosya boyutundan küçükse, cmdlet dosyayı indirmeye devam etmeyi ve kalan baytları dosyanın sonuna eklemeyi dener.

Yerel dosya boyutu uzak dosya boyutuyla aynıysa herhangi 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ı yeniden indirilir. Bu davranış, Devam Et olmadan OutFile'ı kullanmakla aynıdır.

Uzak sunucu indirme işleminin devam etmesini desteklemiyorsa yerel dosyanın üzerine yazılır ve uzak dosyanın tamamı yeniden indirilir. Bu davranış, Devam Et olmadan OutFile'ı kullanmakla aynıdır.

Yerel dosya mevcut değilse yerel dosya oluşturulur ve uzak dosyanın tamamı indirilir. Bu davranış, Devam Et olmadan OutFile'ı kullanmakla aynıdır.

Bu özellik PowerShell 6.1.0'da eklenmiştir.

Tip :

SwitchParameter

Konum:

Adlandırılmış

Varsayılan değer:

False

Gerekli:

False

Boru hattı girişini kabul edin:

False

Joker karakterleri kabul et:

False

-RetryIntervalSec

400 ile 599 (dahil) arasında veya 304 arasında bir arıza kodu alındığında, bağlantı için yeniden denemeler arasındaki aralığı belirtir. Ayrıca yeniden deneme sayısını belirtmek için MaximumRetryCount parametresine bakın. Değer 1 ile [int]::MaxValue arasında olmalıdır.

Hata kodu 429 olduğunda ve yanıt, başlıklarında Retry-After özelliğini içerdiğinde, cmdlet, bu parametre belirtilmiş olsa bile, yeniden deneme aralığı için bu değeri kullanır.

Tip :

Int32

Konum:

Adlandırılmış

Varsayılan değer:

5

Gerekli:

False

Boru hattı girişini kabul edin:

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şkeni belirtir. Dolar işareti ($) simgesi olmayan bir değişken adı girin.

Bir oturum değişkeni belirttiğinizde Invoke-WebRequest bir web isteği oturumu nesnesi oluşturur ve bunu PowerShell oturumunuzda belirtilen ada sahip bir değişkene atar. Komut tamamlanır tamamlanmaz değişkeni oturumunuzda kullanabilirsiniz.

PowerShell 7,4'ten önce web isteği oturumu kalıcı bir bağlantı değildi. Çerezler, kimlik bilgileri, maksimum yeniden yönlendirme değeri ve kullanıcı aracısı dizesi dahil olmak üzere bağlantı ve istek hakkında bilgi içeren bir nesnedir. Web istekleri arasında durum ve verileri paylaşmak için kullanabilirsiniz.

PowerShell 7,4'ten başlayarak, web isteği oturumu, oturumun özellikleri sonraki bir istekte geçersiz kılınmadığı sürece kalıcıdır. Bunlar gerçekleştiğinde cmdlet, oturumu yeni değerlerle yeniden oluşturur. Kalıcı oturumlar, tekrarlanan isteklere ilişkin ek yükü azaltır ve bu isteklerin çok daha hızlı olmasını sağlar.

Web isteği oturumunu sonraki web isteklerinde kullanmak için WebSession parametresinin değerinde oturum değişkenini belirtin. PowerShell, yeni bağlantıyı kurarken web isteği oturumu 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ğerlere göre önceliklidir.

SessionVariable ve WebSession parametrelerini aynı komutta kullanamazsınız.

Tip :

String

Takma adlar:

SV

Konum:

Adlandırılmış

Varsayılan değer:

None

Gerekli:

False

Boru hattı girişini kabul edin:

False

Joker karakterleri kabul et:

False

-SkipCertificateCheck

Sertifika doğrulama kontrollerini atlar. Bu, geçerlilik sonu, iptal, güvenilir kök yetkili vb. gibi tüm doğrulamaları içerir.

Uyarı

Bu parametrenin kullanılması güvenli değildir ve önerilmez. Bu anahtarın yalnızca test amacıyla kendinden imzalı bir sertifika kullanan bilinen ana bilgisayarlara karşı kullanılması amaçlanmıştır. Riski size ait olmak üzere kullanın.

Bu özellik PowerShell 6.0.0'da eklenmiştir.

Tip :

SwitchParameter

Konum:

Adlandırılmış

Varsayılan değer:

False

Gerekli:

False

Boru hattı girişini kabul edin:

False

Joker karakterleri kabul et:

False

-SkipHeaderValidation

Cmdlet'in isteğe doğrulama olmadan üstbilgi eklemesi gerektiğini belirtir.

Bu anahtar, standartlara uymayan başlık değerleri gerektiren siteler için kullanılmalıdır. Bu anahtarın belirtilmesi, değerin işaretlenmeden iletilmesine izin vermek için doğrulamayı devre dışı bırakır. Belirtildiğinde tüm başlıklar doğrulama yapılmadan eklenir.

Bu anahtar, ContentType, Headers ve UserAgent parametrelerine aktarılan değerlerin doğrulanmasını devre dışı bırakır.

Bu özellik PowerShell 6.0.0'da eklenmiştir.

Tip :

SwitchParameter

Konum:

Adlandırılmış

Varsayılan değer:

False

Gerekli:

False

Boru hattı girişini kabul edin:

False

Joker karakterleri kabul et:

False

-SkipHttpErrorCheck

Bu parametre, cmdlet'in HTTP hata durumlarını yoksaymasına ve yanıtları işlemeye devam etmesine neden olur. Hata yanıtları sanki başarılıymış gibi işlem hattına yazılır.

Bu parametre PowerShell 7'de tanıtıldı.

Tip :

SwitchParameter

Konum:

Adlandırılmış

Varsayılan değer:

False

Gerekli:

False

Boru hattı girişini kabul edin:

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 tüm SSL/TLS protokollerine izin verilir. SslProtocol uyumluluk amacıyla belirli protokollerle sınırlandırmaya 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 bir araya getirebilirsiniz. Değerler, bir değerler dizisi veya bu değerlerin virgülle ayrılmış dizesi olarak SslProtocol parametresine aktarılabilir. Cmdlet, ikili VEYA işlemini kullanarak değerleri birleştirir. Değerleri bir dizi olarak iletmek en basit seçenektir ve aynı zamanda değerler üzerinde sekme tamamlamayı kullanmanıza da olanak tanır. Tüm platformlarda birden fazla seçenek tanımlayamayabilirsiniz.

Not

Windows dışı platformlarda Tls veya Tls12 seçeneğini seçenek olarak sağlamak mümkün olmayabilir. Tls13 desteği tüm işletim sistemlerinde mevcut değildir ve işletim sistemi bazında doğrulanması gerekecektir.

Bu özellik PowerShell 6.0.0'a, Tls13 desteği ise PowerShell 7.1'e eklendi.

Tip :

WebSslProtokolü

Kabul edilen değerler:

Varsayılan, Tls, Tls11, Tls12

Konum:

Adlandırılmış

Varsayılan değer:

None

Gerekli:

False

Boru hattı girişini kabul edin:

False

Joker karakterleri kabul et:

False

-Token

İsteğe eklenecek OAuth veya Bearer jetonu. Belirli Kimlik Doğrulama seçenekleri için Jeton gereklidir. Bağımsız olarak kullanılamaz.

Token, belirteci içeren bir SecureString alır. Belirteci manuel olarak 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 tanıtıldı.

Tip :

SecureString

Konum:

Adlandırılmış

Varsayılan değer:

None

Gerekli:

False

Boru hattı girişini kabul edin:

False

Joker karakterleri kabul et:

False

-TransferEncoding

Aktarım kodlama HTTP yanıt başlığı için bir değer belirtir. Bu parametre için kabul edilebilir değerler şunlardır:

    Chunked
    Compress
    Deflate
    GZip
    Identity
Tip :

String

Kabul edilen değerler:

parçalanmış, sıkıştır, söndür, gzip, kimlik

Konum:

Adlandırılmış

Varsayılan değer:

None

Gerekli:

False

Boru hattı girişini kabul edin:

False

Joker karakterleri kabul et:

False

-UnixSocket

Bağlanılacak Unix soketinin adını belirtir. Bu parametre Unix tabanlı sistemlerde ve Windows sürüm 1803 ve sonrasında 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 eklenmiştir.

Tip :

UnixDomainSocketEndPoint

Konum:

Adlandırılmış

Varsayılan değer:

None

Gerekli:

False

Boru hattı girişini kabul edin:

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'yi destekler.

Bu parametre gereklidir. Uri parametre adı isteğe bağlıdır.

Tip :

Uri

Konum:

0

Varsayılan değer:

None

Gerekli:

True

Boru hattı girişini kabul edin:

False

Joker karakterleri kabul et:

False

-UseBasicParsing

Bu parametre kullanımdan kaldırıldı. PowerShell 6.0.0'dan itibaren tüm Web istekleri yalnızca temel ayrıştırmayı kullanır. Bu parametre yalnızca geriye dönük uyumluluk amacıyla eklenmiştir ve herhangi bir şekilde kullanılmasının cmdlet'in çalışması üzerinde hiçbir etkisi yoktur.

Tip :

SwitchParameter

Konum:

Adlandırılmış

Varsayılan değer:

False

Gerekli:

False

Boru hattı girişini kabul edin:

False

Joker karakterleri kabul et:

False

-UseDefaultCredentials

Cmdlet'in web isteğini göndermek için geçerli kullanıcının kimlik bilgilerini kullandığını belirtir. Bu, Kimlik Doğrulama veya Kimlik Bilgileri ile birlikte kullanılamaz ve tüm platformlarda desteklenmeyebilir.

Tip :

SwitchParameter

Konum:

Adlandırılmış

Varsayılan değer:

False

Gerekli:

False

Boru hattı girişini kabul edin:

False

Joker karakterleri kabul et:

False

-UserAgent

Web isteği için bir kullanıcı aracısı dizesini belirtir.

Varsayılan kullanıcı aracısı, her işletim sistemi ve platform için küçük değişikliklerle birlikte Mozilla/5.0 (Windows NT 10.0; Microsoft Windows 10.0.15063; en-US) PowerShell/6.0.0'a benzer.

Bir web sitesini çoğu internet tarayıcısı tarafından kullanılan standart kullanıcı aracısı dizesiyle test etmek için PSUserAgent sınıfının Chrome, FireFox, InternetExplorer, Opera ve Safari gibi ö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)

Tip :

String

Konum:

Adlandırılmış

Varsayılan değer:

None

Gerekli:

False

Boru hattı girişini kabul edin:

False

Joker karakterleri kabul et:

False

-WebSession

Bir web isteği oturumunu 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ğerlere göre önceliklidir. Body için bir MultipartFormDataContent nesnesi sağlandığında, Content-Type gibi içerikle ilgili üstbilgiler de geçersiz kılınır.

Uzak oturumun aksine, web isteği oturumu kalıcı bir bağlantı değildir. Çerezler, kimlik bilgileri, maksimum yeniden yönlendirme değeri ve kullanıcı aracısı dizesi dahil olmak üzere bağlantı ve istek hakkında bilgi içeren bir nesnedir. Web istekleri arasında durum ve verileri paylaşmak için kullanabilirsiniz.

Bir web isteği oturumu oluşturmak için Invoke-WebRequest komutunun SessionVariable parametresinin değerine dolar işareti olmadan bir değişken adı girin. Invoke-WebRequest oturumu oluşturur ve onu değişkene kaydeder. Sonraki komutlarda değişkeni WebSession parametresinin değeri olarak kullanın.

SessionVariable ve WebSession parametrelerini aynı komutta kullanamazsınız.

Tip :

WebİstekOturumu

Konum:

Adlandırılmış

Varsayılan değer:

None

Gerekli:

False

Boru hattı girişini kabul edin:

False

Joker karakterleri kabul et:

False

Girişler

Nesne

Bir web isteğinin gövdesini bu cmdlet'e yönlendirebilirsiniz.

Çıkışlar

BasicHtmlWebResponseObject

Bu cmdlet, web isteğinin sonucunu temsil eden yanıt nesnesini döndürür.

Notlar

PowerShell, Invoke-WebRequest için aşağıdaki takma adları içerir:

  • Tüm platformlar:

      iwr

PowerShell 6.0.0'dan itibaren Invoke-WebRequest yalnızca temel ayrıştırmayı destekler.

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 mülkün değeri platformunuz tarafından belirlenir:

  • Windows için: Ortam değişkenlerinden proxy 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 proxy yapılandırmasını okur. Bu değişkenler tanımlanmamışsa özellik, sistemin proxy ayarlarından türetilir.
  • Linux için: Ortam değişkenlerinden proxy yapılandırmasını okur. Bu değişkenler tanımlanmamışsa özellik, tüm adresleri atlayan, yapılandırılmamış bir örneği başlatır.

Windows ve Unix tabanlı platformlarda DefaultProxy'nin başlatılması için kullanılan ortam değişkenleri şunlardır:

  • HTTP_PROXY: HTTP isteklerinde kullanılan proxy sunucusunun ana bilgisayar adı veya IP adresi.
  • HTTPS_PROXY: HTTPS isteklerinde kullanılan proxy sunucusunun ana bilgisayar adı veya IP adresi.
  • ALL_PROXY: HTTP_PROXY veya HTTPS_PROXY'nin tanımlanmaması durumunda HTTP ve HTTPS isteklerinde kullanılan proxy sunucusunun ana bilgisayar adı veya IP adresi.
  • NO_PROXY: proxy'den hariç 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.

İlgili makaleler