Aracılığıyla paylaş


Invoke-WebRequest

İnternet'te bir web sayfasından içerik alır.

Sözdizimi

StandardMethod EnterprisePublishing

Invoke-WebRequest
    [-Uri] <Uri>
    [-UseBasicParsing]
    [-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>]

StandardMethodNoProxy

Invoke-WebRequest
    [-Uri] <Uri>
    [-UseBasicParsing]
    [-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>]

CustomMethod

Invoke-WebRequest
    [-Uri] <Uri>
    -CustomMethod <String>
    [-UseBasicParsing]
    [-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>]
    [-PreserveHttpMethodOnRedirect]
    [-UnixSocket <UnixDomainSocketEndPoint>]
    [-Proxy <Uri>]
    [-ProxyCredential <PSCredential>]
    [-ProxyUseDefaultCredentials]
    [-Body <Object>]
    [-Form <IDictionary>]
    [-ContentType <String>]
    [-TransferEncoding <String>]
    [-InFile <String>]
    [-OutFile <String>]
    [-PassThru]
    [-Resume]
    [-SkipHttpErrorCheck]
    [<CommonParameters>]

CustomMethodNoProxy

Invoke-WebRequest
    [-Uri] <Uri>
    -CustomMethod <String>
    [-UseBasicParsing]
    [-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>]
    [-PreserveHttpMethodOnRedirect]
    [-UnixSocket <UnixDomainSocketEndPoint>]
    [-NoProxy]
    [-Body <Object>]
    [-Form <IDictionary>]
    [-ContentType <String>]
    [-TransferEncoding <String>]
    [-InFile <String>]
    [-OutFile <String>]
    [-PassThru]
    [-Resume]
    [-SkipHttpErrorCheck]
    [<CommonParameters>]

Description

Invoke-WebRequest cmdlet'i 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 Invoke-WebRequest ortam 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 contoso.com etki alanındaki konaklara başvurur. 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 siteleri 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, charset üst bilgisinde Content-Type özniteliğini ayarlamanız gerekir.

Örnekler

Örnek 1: Web isteği gönderme

Bu örnekte, Bing.com sitesine web isteği göndermek için Invoke-WebRequest cmdlet'i kullanılı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 düzenler ve yanıtı $Response değişkenine kaydeder.

İkinci komut, Name özelliğinin gibi olduğu "* Value" alır. Filtrelenen sonuçlar, Select-Object ve Değer özelliklerini seçmek için yönlendirilir.

Örnek 2: Durum bilgisi olan bir web hizmeti kullanma

Bu örnekte, durum bilgisi olan bir web hizmetiyle Invoke-WebRequest 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

Invoke-WebRequest'ye yapılan ilk çağrı bir oturum açma isteği gönderir. komutu, Session parametresinin değeri için değerini belirtir. Komut tamamlandığında, $LoginResponse değişkeni BasicHtmlWebResponseObject ve $Session değişkeni bir WebRequestSession nesnesi içerir. Bu, kullanıcıyı sitede günlüğe kaydeder.

Invoke-WebRequest için yapılan ikinci çağrı kullanıcının profilini getirir ve bu da kullanıcının sitede oturum açmasını gerektirir. $Session değişkeninde 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 Invoke-WebRequest cmdlet'ini kullanır. Ardından, döndüren BasicHtmlWebResponseObjectInvoke-WebRequest ö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, PowerShell belge sayfasının web sayfası içeriğini almak için Invoke-WebRequest cmdlet'i kullanılı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 Kodlama özelliği, dosyanın kodlamasını ayarlamak için kullanılır.

Son birkaç komut, content özelliğini dosyasına yazar ve ardından StreamWriteratılır.

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

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

Bu örnekte, bir dosyayı Invoke-WebRequest gönderimi olarak karşıya yükleme multipart/form-data cmdlet'i kullanılır. Dosya C:\document.txt, documentContent-Typetext/plain form alanı 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-Data Gönderimi

Dosyaları ve karma içeriği yüklemek için bazı API'ler multipart/form-data gönderimleri gerektirir. 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, birthdayve hobbies. API, avatar alanında kullanıcı profili resmi için bir görüntü sağlanmasını bekliyor. API aynı formda gönderilecek birden çok hobbies girdisini de kabul eder.

$Form HashTable oluşturulurken, 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 nesnesi değer olarak ayarlanır. Sonuç, jdoe.png görüntü verilerinin gönderilmesidir.

hobbies anahtarına bir liste sağlandığında, hobbies alanı her liste öğesi için gönderimlerde bir kez bulunur.

Örnek 7: Invoke-WebRequest gelen başarılı olmayan iletileri yakalama

Invoke-WebRequest başarılı olmayan bir HTTP iletisiyle (404, 500 vb.) karşılaştığında çıkış döndürmez ve sonlandırıcı bir hata oluşturur. Hatayı yakalamak ve StatusCode görüntülemek için yürütmeyi try/catch bir bloğun 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ı, catch nesnesinden StatusCode alan bloğu tarafından yakalanıyor.

Örnek 8: Aynı anda birden çok dosya indirme

Invoke-WebRequest cmdlet'i 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 Start-ThreadJob 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: Üst Bilgi Doğrulama atlanıyor

varsayılan olarak, Invoke-WebRequest cmdlet'i 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 içerik olarak bir isteğin üst bilgilerini döndüren hizmetin /headers uç noktasına atanır.

If-Match isteği üst bilgisi, RFC-7232 bölüm 3.1'de tanımlanmıştır ve bu üst bilginin değerinin, tırnak işaretleriyle çevrilmiş olarak tanımlanmasını gerektirir. $InvalidHeaders değişkenine, If-Match değerinin 12345yerine "12345" olarak tanımlandığı için geçersiz olduğu bir karma tablosu atanır.

Geçersiz üst bilgilerle Invoke-WebRequest çağrılması, biçimlendirilmiş değerin geçersiz olduğunu bildiren bir hata döndürür. İstek uç noktaya gönderilmez.

Invoke-WebRequest parametresiyle çağrılması 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 Invoke-WebRequest cmdlet'ini kullanır. Ardından, döndüren BasicHtmlWebResponseObjectInvoke-WebRequest ö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. AllowInsecureRedirect parametresini kullanarak bu davranışı kendi sorumluluğunuzda geçersiz kılın.

Bu parametre PowerShell 7.4'e eklendi.

Parametre özellikleri

Tür:SwitchParameter
Default value:False
Joker karakterleri destekler:False
DontShow:False

Parametre kümeleri

(All)
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

-AllowUnencryptedAuthentication

Kimlik bilgilerinin ve gizli dizilerin şifrelenmemiş bağlantılar üzerinden gönderilmesine izin verir. Varsayılan olarak, Kimlik Bilgisi veya ile başlamayan bir Uri ile https:// seçeneği sağlandığında hata oluşur ve gizli dizilerin şifrelenmemiş bağlantılar üzerinden 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.

Parametre özellikleri

Tür:SwitchParameter
Default value:False
Joker karakterleri destekler:False
DontShow:False

Parametre kümeleri

(All)
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

-Authentication

İstek için kullanılacak açık kimlik doğrulama türünü belirtir. Varsayılan değer Yok'tır. Kimlik Doğrulaması parametresi, UseDefaultCredentials parametresiyle kullanılamaz.

Kullanılabilir Kimlik Doğrulama Seçenekleri:

  • None: Kimlik Doğrulaması sağlanmadığında bu varsayılan seçenektir. Açık kimlik doğrulaması kullanılmaz.
  • Basic: Kimlik Bilgisigerektirir. Kimlik bilgileri, Authorization: Basicbiçiminde rfc 7617 Temel Kimlik Doğrulaması base64(user:password) üst bilgisi olarak gönderilir.
  • Bearer: Belirteci parametresini gerektirir. Verilen belirteçle bir RFC 6750 Authorization: Bearer üst bilgisi gönderir.
  • OAuth: Belirteci parametresini gerektirir. Verilen belirteçle bir RFC 6750 Authorization: Bearer üst bilgisi gönderir.

Kimlik Doğrulaması sağlanması, Authorization veya WebSessionbağlamına sağlanan tüm üst bilgilerini geçersiz kılar.

Bu özellik PowerShell 6.0.0'a eklendi.

Parametre özellikleri

Tür:WebAuthenticationType
Default value:None
Kabul edilen değerler:None, Basic, Bearer, OAuth
Joker karakterleri destekler:False
DontShow:False

Parametre kümeleri

(All)
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

-Body

İsteğin gövdesini belirtir. Gövde, üst bilgileri izleyen isteğin içeriğidir. Gövde değerini Invoke-WebRequestüzerine yönlendirebilirsiniz.

Body parametresi, sorgu parametrelerinin listesini belirtmek 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öntemini kullanır. URL'ler için dize kodlama hakkında daha fazla bilgi için bkz. urlEncode() yöntem başvurusu .

Giriş bir POST isteği olduğunda ve gövde Dizeise, ilk eşittir işaretinin (=) solundaki değer form verilerinde anahtar olarak ayarlanır ve kalan metin değer olarak ayarlanır. Birden çok anahtar belirtmek için, Gövdeiç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, istek gövdesinin standart name=value biçiminde url ile kodlanmış değerleriyle değeri olarak ayarlanır.

Giriş bir System.Xml.XmlNode nesnesiyse 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 nesnesi kabul eder. Bu, multipart/form-data isteklerini kolaylaştırır. Bodyiçin bir MultipartFormDataContent nesnesi sağlandığında, ContentType, Headersveya 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.

Parametre özellikleri

Tür:Object
Default value:None
Joker karakterleri destekler:False
DontShow:False

Parametre kümeleri

(All)
Position:Named
Zorunlu:False
İşlem hattından gelen değer:True
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer: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 Get-PfxCertificate kullanın veya Sertifika (Get-ChildItem) sürücüsündeki Cert: cmdlet'ini kullanın. Sertifika geçerli değilse veya yeterli yetkiye sahip değilse, komut başarısız olur.

Parametre özellikleri

Tür:X509Certificate
Default value:None
Joker karakterleri destekler:False
DontShow:False

Parametre kümeleri

(All)
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

-CertificateThumbprint

İsteği gönderme izni olan bir kullanıcı hesabının dijital ortak anahtar sertifikasını (X509) belirtir. Sertifikanın 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 Get-Item veya Get-ChildItem komutunu kullanarak Cert:\CurrentUser\Myiçinde sertifikayı bulun.

Uyarı

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

Parametre özellikleri

Tür:String
Default value:None
Joker karakterleri destekler:False
DontShow:False

Parametre kümeleri

(All)
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer: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) sorgusunun yanıt alması veya zaman aşımına uğraması 15 saniye kadar sürebilir. İsteğinizde çözümleme gerektiren bir ana bilgisayar adı varsa ve ConnectionTimeoutSeconds değerini sıfırdan büyük ama 15 saniyeden küçük bir değer olarak ayarlarsanız, bir WebException atılması ve isteğinizin zaman aşımına uğraması 15 saniye veya daha uzun sürebilir.

Bu parametre, PowerShell 7.4'teki TimeoutSec parametresinin yerini aldı. ConnectionTimeoutSecondsiçin diğer ad olarak TimeoutSec kullanabilirsiniz.

Parametre özellikleri

Tür:Int32
Default value:None
Joker karakterleri destekler:False
DontShow:False
Diğer adlar:TimeoutSec

Parametre kümeleri

(All)
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

-ContentType

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

ContentType değeri kodlama biçimini (charsetolarak) içeriyorsa, cmdlet web isteğinin gövdesini kodlamak için bu biçimi kullanır. ContentType 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 alfabesini belirten şeklindedir.

parametresini atlarsanız, içerik türü kullandığınız HTTP yöntemine göre farklı olabilir:

  • POST yöntemi için içerik türü application/x-www-form-urlencoded
  • PUT yöntemi için içerik türü application/json
  • Diğer yöntemler için içerik türü istekte belirtilmez

Dosyayı karşıya yüklemek için InFile parametresini kullanıyorsanız, içerik türünü ayarlamanız gerekir. Genellikle türü application/octet-streamolmalıdır. Ancak, içerik türünü uç noktanın gereksinimlerine göre ayarlamanız gerekir.

GövdeMultipartFormDataContent nesnesi olduğunda ContentType geçersiz kılınır.

PowerShell 7.4'te başlayarak, üst bilgisini tanımlamak için hem bu parametreyi hem de Content-Type parametresini kullanırsanız, ContentType parametresinde belirtilen değer kullanılır.

Parametre özellikleri

Tür:String
Default value:None
Joker karakterleri destekler:False
DontShow:False

Parametre kümeleri

(All)
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

-Credential

İsteği gönderme izni olan bir kullanıcı hesabı belirtir. Varsayılan değer mevcut kullanıcıdır.

User01 veya Domain01\User01gibi bir kullanıcı adı yazın veya cmdlet'i tarafından oluşturulan Get-Credential nesnesi girin.

Kimlik Bilgisi tek başına veya belirli Kimlik Doğrulaması parametre 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ğrulaması seçenekleriyle kullanıldığında, kimlik bilgileri açıkça gönderilir.

Kimlik bilgileri bir PSCredential nesnesinde depolanır ve parola SecureStringolarak depolanır.

Uyarı

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

Parametre özellikleri

Tür:PSCredential
Default value:Current user
Joker karakterleri destekler:False
DontShow:False

Parametre kümeleri

(All)
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

-CustomMethod

Web isteği için kullanılan özel bir yöntemi belirtir. Uç nokta için gereken İstek Yöntemi Yönteminde kullanılabilir bir seçenek değilse bu kullanılabilir. Yöntemi ve CustomMethod birlikte kullanılamaz.

Bu örnek, API'ye TEST bir HTTP isteği yapar:

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

Bu özellik PowerShell 6.0.0'a eklendi.

Parametre özellikleri

Tür:String
Default value:None
Joker karakterleri destekler:False
DontShow:False
Diğer adlar:CM

Parametre kümeleri

CustomMethod
Position:Named
Zorunlu:True
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False
CustomMethodNoProxy
Position:Named
Zorunlu:True
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

-DisableKeepAlive

cmdlet'in HTTP üst bilgisindeki KeepAlive değerini Falseolarak ayarladığını gösterir. Varsayılan olarak KeepAlive True. KeepAlive, sonraki istekleri kolaylaştırmak için sunucuya kalıcı bir bağlantı kurar.

Parametre özellikleri

Tür:SwitchParameter
Default value:False
Joker karakterleri destekler:False
DontShow:False

Parametre kümeleri

(All)
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

-Form

Sözlüğü multipart/form-data gönderimine dönüştürür. FormGövdeile kullanılamaz. 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ı dosya adı özelliği olarak gönderilir. MIME türü application/octet-streamolarak ayarlanır. Get-Item, System.IO.FileInfo nesnesini sağlamayı 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ı, Vacation, Italyve 2017her biri için bir kez biçiminde üç kez sağlanır. pictures alanı da 2017-Italy klasöründeki her dosya için 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.

Parametre özellikleri

Tür:IDictionary
Default value:None
Joker karakterleri destekler:False
DontShow:False

Parametre kümeleri

(All)
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

-Headers

Web isteğinin üst bilgilerini belirtir. Bir hash tablosu veya sözlük girin.

Content-Typeiçin MultipartFormDataContent nesnesi sağlandığında, gibi içerikle ilgili üst bilgiler geçersiz kılınır.

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

Parametre özellikleri

Tür:IDictionary
Default value:None
Joker karakterleri destekler:False
DontShow:False

Parametre kümeleri

(All)
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

-HttpVersion

İstek için kullanılan HTTP sürümünü belirtir. Varsayılan değer: 1.1.

Geçerli değerler şunlardır:

  • 1.0
  • 1.1
  • 2.0
  • 3.0

Parametre özellikleri

Tür:Version
Default value:1.1
Joker karakterleri destekler:False
DontShow:False

Parametre kümeleri

(All)
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

-InFile

Web isteği gövdesinin içeriğini bir dosyadan alır. Bir yol ve dosya adı girin. Yolu atlarsanız, varsayılan ayar şu anki konumdur.

İsteğin içerik türünü de ayarlamanız gerekir. Örneğin, bir dosyayı karşıya yüklemek için içerik türünü ayarlamanız gerekir. Genellikle türü application/octet-streamolmalıdır. Ancak, içerik türünü uç noktanın gereksinimlerine göre ayarlamanız gerekir.

Parametre özellikleri

Tür:String
Default value:None
Joker karakterleri destekler:False
DontShow:False

Parametre kümeleri

(All)
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer: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.

Parametre özellikleri

Tür:Int32
Default value:5
Joker karakterleri destekler:False
DontShow:False

Parametre kümeleri

(All)
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer: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 denemeler arasındaki aralığı belirtmek için RetryIntervalSec parametresine bakın.

Parametre özellikleri

Tür:Int32
Default value:None
Joker karakterleri destekler:False
DontShow:False

Parametre kümeleri

(All)
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer: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.

Parametre özellikleri

Tür:WebRequestMethod
Default value:None
Kabul edilen değerler:Default, Get, Head, Post, Put, Delete, Trace, Options, Merge, Patch
Joker karakterleri destekler:False
DontShow:False

Parametre kümeleri

StandardMethod
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False
StandardMethodNoProxy
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer: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.

Parametre özellikleri

Tür:SwitchParameter
Default value:False
Joker karakterleri destekler:False
DontShow:False

Parametre kümeleri

StandardMethodNoProxy
Position:Named
Zorunlu:True
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False
CustomMethodNoProxy
Position:Named
Zorunlu:True
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer: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.

Parametre özellikleri

Tür:Int32
Default value:None
Joker karakterleri destekler:False
DontShow:False

Parametre kümeleri

(All)
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

-OutFile

Varsayılan olarak, Invoke-WebRequest sonuçları işlem hattına döndürür. OutFile parametresini kullandığınızda, sonuçlar belirtilen dosyaya kaydedilir ve işlem hattına geri döndürülmez. 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 ayar şu anki konumdur. Ad, kelimenin tam anlamıyla bir dizin olarak ele alınır. 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. OutFileiçin bir klasör yolu belirttiğinizde, Resume parametresini kullanamazsınız.

Parametre özellikleri

Tür:String
Default value:None
Joker karakterleri destekler:False
DontShow:False

Parametre kümeleri

(All)
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer: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.

Parametre özellikleri

Tür:SwitchParameter
Default value:False
Joker karakterleri destekler:False
DontShow:False

Parametre kümeleri

(All)
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

-PreserveAuthorizationOnRedirect

Bu cmdlet, mevcut olduğunda yeniden yönlendirmeler arasında Authorization üst bilgisini koruması gerektiğini belirtir.

Varsayılan olarak, cmdlet yeniden yönlendirmeden önce Authorization üst bilgisini kaldırı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.

Parametre özellikleri

Tür:SwitchParameter
Default value:False
Joker karakterleri destekler:False
DontShow:False

Parametre kümeleri

(All)
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer: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 GET olarak 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.

Parametre özellikleri

Tür:SwitchParameter
Default value:False
Joker karakterleri destekler:False
DontShow:False

Parametre kümeleri

(All)
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

-Proxy

doğrudan İnternet kaynağına bağlanmak yerine istek için bir ara sunucu belirtir. Ağ proxy sunucusunun URI'sini girin.

Parametre özellikleri

Tür:Uri
Default value:None
Joker karakterleri destekler:False
DontShow:False

Parametre kümeleri

StandardMethod
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False
CustomMethod
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

-ProxyCredential

Proxy parametresi tarafından belirtilen ara sunucuyu kullanma izni olan bir kullanıcı hesabı belirtir. Varsayılan değer mevcut kullanıcıdır.

User01 veya Domain01\User01gibi bir kullanıcı adı yazın ya da cmdlet'i tarafından oluşturulmuş bir Get-Credential nesnesi girin.

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

Parametre özellikleri

Tür:PSCredential
Default value:Current user
Joker karakterleri destekler:False
DontShow:False

Parametre kümeleri

StandardMethod
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False
CustomMethod
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer: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.

Parametre özellikleri

Tür:SwitchParameter
Default value:False
Joker karakterleri destekler:False
DontShow:False

Parametre kümeleri

StandardMethod
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False
CustomMethod
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

-Resume

Kısmi bir dosyayı indirmeye devam etmek için en iyi çabayı gösterir. ÖzgeçmişOutFilegerektirir.

Ö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 kaldığı yerden devam etmeyi desteklemiyorsa, yerel dosya değiştirilir 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.

Parametre özellikleri

Tür:SwitchParameter
Default value:False
Joker karakterleri destekler:False
DontShow:False

Parametre kümeleri

(All)
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer: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. Ayrıca, yeniden deneme sayısını belirtmek için maximumRetryCount parametresi bakın. Değerin 1 ile [int]::MaxValuearasında olması gerekir.

Hata kodu 429 olduğunda ve yanıt üst bilgilerinde Retry-After özelliğini içeriyorsa, cmdlet bu parametre belirtilmiş olsa bile yeniden deneme aralığı için bu değeri kullanır.

Parametre özellikleri

Tür:Int32
Default value:5
Joker karakterleri destekler:False
DontShow:False

Parametre kümeleri

(All)
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer: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 çerezler, kimlik bilgileri, maksimum yönlendirme sayısı ve kullanıcı aracı dizgesi 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 WebSession parametresinin değerinde oturum değişkenini 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 Credentialgibi bir cmdlet parametresi kullanın. Parametre değerleri web isteği oturumundaki değerlerden önceliklidir.

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

Parametre özellikleri

Tür:String
Default value:None
Joker karakterleri destekler:False
DontShow:False
Diğer adlar:SV

Parametre kümeleri

(All)
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer: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.

Parametre özellikleri

Tür:SwitchParameter
Default value:False
Joker karakterleri destekler:False
DontShow:False

Parametre kümeleri

(All)
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

-SkipHeaderValidation

Cmdlet'in doğrulama olmadan isteğe üst bilgi eklemesi gerektiğini gösterir.

Bu düğme, 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.

Parametre özellikleri

Tür:SwitchParameter
Default value:False
Joker karakterleri destekler:False
DontShow:False

Parametre kümeleri

(All)
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

-SkipHttpErrorCheck

Bu parametre, cmdlet'in HTTP hata durumlarını yoksayıp yanıtları işlemeye devam etmesine neden olur. Hata yanıtları, tıpkı başarılı olmuş gibi işlem hattına yazılır.

Bu parametre PowerShell 7'de kullanıma sunulmuştur.

Parametre özellikleri

Tür:SwitchParameter
Default value:False
Joker karakterleri destekler:False
DontShow:False

Parametre kümeleri

(All)
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer: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ırlanabilir.

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 olarak veya bu değerlerin virgülle ayrılmış dizesi olarak geçirilebilir. Cmdlet, değerleri ikili VEYA işlemi kullanarak 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.

Uyarı

Windows dışı platformlarda seçenek olarak Tls veya Tls12 sağlamak 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 eklendi ve PowerShell 7.1'de Tls13 desteği eklendi.

Parametre özellikleri

Tür:WebSslProtocol
Default value:None
Kabul edilen değerler:Default, Tls, Tls11, Tls12
Joker karakterleri destekler:False
DontShow:False

Parametre kümeleri

(All)
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

-Token

İstekte dahil etmek için OAuth veya Bearer belirteci. Belirteci, belirli Kimlik Doğrulaması 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.

Parametre özellikleri

Tür:SecureString
Default value:None
Joker karakterleri destekler:False
DontShow:False

Parametre kümeleri

(All)
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

-TransferEncoding

Aktarım kodlaması HTTP yanıt üst bilgisi için bir değer belirtir. Bu parametre için kabul edilebilir değerler şunlardır:

  • Chunked
  • Compress
  • Deflate
  • GZip
  • Identity

Parametre özellikleri

Tür:String
Default value:None
Kabul edilen değerler:chunked, compress, deflate, gzip, identity
Joker karakterleri destekler:False
DontShow:False

Parametre kümeleri

(All)
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer: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.

Parametre özellikleri

Tür:UnixDomainSocketEndPoint
Default value:None
Joker karakterleri destekler:False
DontShow:False

Parametre kümeleri

(All)
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer: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 gereklidir. Uri parametre adı isteğe bağlıdır.

Parametre özellikleri

Tür:Uri
Default value:None
Joker karakterleri destekler:False
DontShow:False

Parametre kümeleri

(All)
Position:0
Zorunlu:True
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer: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.

Parametre özellikleri

Tür:SwitchParameter
Default value:False
Joker karakterleri destekler:False
DontShow:False

Parametre kümeleri

(All)
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer: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 Bilgisi ile kullanılamaz ve tüm platformlarda desteklenmeyebilir.

Parametre özellikleri

Tür:SwitchParameter
Default value:False
Joker karakterleri destekler:False
DontShow:False

Parametre kümeleri

(All)
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer: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 varyasyonları olan Mozilla/5.0 (Windows NT 10.0; Microsoft Windows 10.0.15063; en-US) PowerShell/6.0.0 benzerdir.

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)

Parametre özellikleri

Tür:String
Default value:None
Joker karakterleri destekler:False
DontShow:False

Parametre kümeleri

(All)
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

-WebSession

Belirli 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 Credentialgibi bir cmdlet parametresi kullanın. Parametre değerleri web isteği oturumundaki değerlerden önceliklidir. Content-Typeiçin MultipartFormDataContent nesnesi sağlandığında, gibi içerikle ilgili üst bilgiler de 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 çerezler, kimlik bilgileri, maksimum yönlendirme sayısı ve kullanıcı aracı dizgesi 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 komutunun Invoke-WebRequest parametresinin değerine dolar işareti olmadan bir değişken adı girin. Invoke-WebRequest oturumu oluşturur ve bu oturumu değişkene kaydeder. Sonraki komutlarda, WebSession parametresinin değeri olarak değişkenini kullanın.

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

Parametre özellikleri

Tür:WebRequestSession
Default value:None
Joker karakterleri destekler:False
DontShow:False

Parametre kümeleri

(All)
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

CommonParameters

Bu cmdlet yaygın parametreleri destekler: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction ve -WarningVariable. Daha fazla bilgi için bkz. about_CommonParameters.

Girişler

Object

Web isteğinin gövdesini bu cmdlet'e iletebilirsiniz.

Çıkışlar

BasicHtmlWebResponseObject

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

Notlar

PowerShell, Invoke-WebRequestiçin aşağıdaki diğer adları 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:

  • Windowsiç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.
  • macOSiç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.
  • Linuxiç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 DefaultProxy başlatma için 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_PROXY veya HTTPS_PROXY tanımlanmadığı durumlarda HTTP ve HTTPS isteklerinde kullanılan ara sunucunun ana bilgisayar adı veya IP adresi.
  • NO_PROXY: Proxy dışı 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.