Поиск по сайту:

Invoke-WebRequest (Microsoft.PowerShell.Utility)


Invoke-WebRequest

Модуль:
Microsoft.PowerShell.Utility

Получает контент с веб-страницы в Интернете.

Синтаксис

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

Описание

Командлет Invoke-WebRequest отправляет запросы HTTP и HTTPS на веб-страницу или веб-службу. Он анализирует ответ и возвращает коллекции ссылок, изображений и других важных элементов HTML.

Этот командлет был представлен в PowerShell 3.0.

Начиная с PowerShell 7.0, Invoke-WebRequest поддерживает конфигурацию прокси-сервера, определенную переменными среды. См. раздел «Примечания» этой статьи.

Это важно

Примеры в этой статье относятся к хостам в домене contoso.com. Это вымышленный домен, используемый Microsoft в качестве примера. Примеры призваны показать, как использовать командлеты. Однако, поскольку сайты contoso.com не существуют, примеры не работают. Адаптируйте примеры к хостам в вашей среде.

Начиная с PowerShell 7.4, кодировка символов для запросов по умолчанию используется UTF-8 вместо ASCII. Если вам нужна другая кодировка, вы должны установить атрибут charset в заголовке Content-Type.

Примеры

Пример 1. Отправка веб-запроса

В этом примере используется командлет Invoke-WebRequest для отправки веб-запроса на сайт Bing.com.

$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

Первая команда отправляет запрос и сохраняет ответ в переменной $Response.

Вторая команда получает любой InputField, где свойство Name имеет вид "* Value". Отфильтрованные результаты передаются в Select-Object для выбора свойств Name и Value.

Пример 2. Использование веб-службы с отслеживанием состояния

В этом примере показано, как использовать командлет Invoke-WebRequest с веб-службой с отслеживанием состояния.

$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 отправляет запрос на вход. Команда задает значение Session для значения параметра SessionVariable. По завершении команды переменная $LoginResponse содержит BasicHtmlWebResponseObject, а переменная $Session содержит объект WebRequestSession. Это авторизует пользователя на сайте.

Второй вызов Invoke-WebRequest извлекает профиль пользователя, для чего требуется, чтобы пользователь вошел на сайт. Данные сеанса, хранящиеся в переменной $Session, предоставляют файлы cookie сеанса сайту, созданному во время входа в систему.

Пример 3. Получение ссылок с веб-страницы

В этом примере получаются ссылки на веб-странице. Для получения содержимого веб-страницы он использует командлет Invoke-WebRequest. Затем он использует свойство Links объекта BasicHtmlWebResponseObject, который возвращает Invoke-WebRequest, и свойство Href каждой ссылки. .

(Invoke-WebRequest -Uri "https://aka.ms/pscore6-docs").Links.Href

Пример 4. Запись содержимого ответа в файл, используя кодировку, определенную на запрошенной странице.

В этом примере используется командлет Invoke-WebRequest для получения содержимого веб-страницы страницы документации PowerShell.

$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()
}

Первая команда извлекает страницу и сохраняет объект ответа в переменной $Response.

Вторая команда создает StreamWriter, который можно использовать для записи содержимого ответа в файл. Свойство Encoding объекта ответа используется для установки кодировки файла.

Последние несколько команд записывают в файл свойство Content, а затем удаляют StreamWriter.

Обратите внимание, что свойство Кодировка имеет значение null, если веб-запрос не возвращает текстовое содержимое.

Пример 5. Отправка файла multipart/form-data

В этом примере используется командлет Invoke-WebRequest для загрузки файла в виде отправки multipart/form-data. Файл c:\document.txt отправляется как поле формы document с Content-Type text/plain.

$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'

Пример 6. Упрощенная отправка составных данных/данных формы

Некоторые API требуют отправки multipart/form-data для загрузки файлов и смешанного контента. В этом примере показано обновление профиля пользователя.

$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

В форме профиля требуются следующие поля: firstName, lastName, email, аватар, день рождения и хобби. API ожидает, что изображение профиля пользователя будет предоставлено в поле avatar. API также принимает несколько записей хобби, которые необходимо отправить в одной и той же форме.

При создании $Form HashTable имена ключей используются в качестве имен полей формы. По умолчанию значения HashTable преобразуются в строки. Если присутствует значение System.IO.FileInfo, содержимое файла отправляется. Если присутствует коллекция, такая как массивы или списки, поле формы отправляется несколько раз.

Используя Get-Item для клавиши avatar, объект FileInfo устанавливается в качестве значения. В результате отправляются данные изображения для jdoe.png.

Если указать список для ключа хобби, поле хобби будет присутствовать в отправленных материалах один раз для каждого элемента списка.

Пример 7. Перехват сообщений об ошибках из Invoke-WebRequest

Когда Invoke-WebRequest обнаруживает неуспешное HTTP-сообщение (404, 500 и т. д.), он не возвращает никаких выходных данных и выдает завершающую ошибку. Чтобы отловить ошибку и просмотреть StatusCode, вы можете заключить выполнение в блок try/catch.

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

Завершающая ошибка перехватывается блоком catch, который извлекает StatusCode из объекта Exception.

Пример 8. Загрузка нескольких файлов одновременно

Командлет Invoke-WebRequest может загружать только один файл за раз. В следующем примере Start-ThreadJob используется для создания нескольких заданий потока для одновременной загрузки нескольких файлов.

$baseUri = 'https://github.com/PowerShell/PowerShell/releases/download'
$files = @(
    @{
        Uri = "$baseUri/v7.3.0-preview.5/PowerShell-7.3.0-preview.5-win-x64.msi"
        OutFile = 'PowerShell-7.3.0-preview.5-win-x64.msi'
    },
    @{
        Uri = "$baseUri/v7.3.0-preview.5/PowerShell-7.3.0-preview.5-win-x64.zip"
        OutFile = 'PowerShell-7.3.0-preview.5-win-x64.zip'
    },
    @{
        Uri = "$baseUri/v7.2.5/PowerShell-7.2.5-win-x64.msi"
        OutFile = 'PowerShell-7.2.5-win-x64.msi'
    },
    @{
        Uri = "$baseUri/v7.2.5/PowerShell-7.2.5-win-x64.zip"
        OutFile = 'PowerShell-7.2.5-win-x64.zip'
    }
)

$jobs = @()

foreach ($file in $files) {
    $jobs += Start-ThreadJob -Name $file.OutFile -ScriptBlock {
        $params = $using:file
        Invoke-WebRequest @params
    }
}

Write-Host "Downloads started..."
Wait-Job -Job $jobs

foreach ($job in $jobs) {
    Receive-Job -Job $job
}

Пример 9: Пропуск проверки заголовка

По умолчанию командлет Invoke-WebRequest проверяет значения общеизвестных заголовков, имеющих формат значений, определенный стандартами. В следующем примере показано, как эта проверка может вызвать ошибку и как можно использовать параметр SkipHeaderValidation, чтобы избежать проверки значений для конечных точек, которые допускают недопустимо отформатированные значения.

$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 — это служба, которая возвращает информацию о веб-запросах и ответах для устранения неполадок. Переменная $Uri присваивается конечной точке /headers службы, которая возвращает заголовки запроса в качестве содержимого ответа.

Заголовок запроса If-Match определен в разделе 3.1 RFC-7232 и требует, чтобы значение этого заголовка было определено в кавычках. Переменной $InvalidHeaders присваивается хеш-таблица, в которой значение If-Match недопустимо, поскольку оно определено как 12345 вместо " 12345".

Вызов Invoke-WebRequest с недопустимыми заголовками возвращает ошибку, сообщающую, что отформатированное значение недопустимо. Запрос не отправляется в конечную точку.

Вызов Invoke-WebRequest с параметром SkipHeaderValidation игнорирует ошибку проверки и отправляет запрос в конечную точку. Поскольку конечная точка допускает несоответствующие значения заголовка, командлет возвращает объект ответа без ошибок.

Пример 10. Отправка запроса с использованием HTTP 2.0.

В этом примере ссылки на веб-странице получаются по протоколу HTTP 2.0. Для получения содержимого веб-страницы он использует командлет Invoke-WebRequest. Затем он использует свойство Links объекта BasicHtmlWebResponseObject, который возвращает Invoke-WebRequest, и свойство Href каждой ссылки. .

(Invoke-WebRequest -Uri 'https://aka.ms/pscore6-docs' -HttpVersion 2.0).Links.Href

Пример 11. Отправка запроса в приложение сокета Unix.

Некоторые приложения, такие как Docker, предоставляют для связи сокет Unix. В этом примере запрашивается список образов Docker с использованием Docker API. Командлет подключается к демону Docker с помощью сокета Unix.

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

Параметры

-AllowInsecureRedirect

Разрешает перенаправление с HTTPS на HTTP. По умолчанию любой запрос, перенаправленный с HTTPS на HTTP, приводит к ошибке, и запрос прерывается, чтобы предотвратить непреднамеренную передачу открытого текста по незашифрованным соединениям. Чтобы изменить это поведение на свой страх и риск, используйте параметр AllowInsecureRedirect.

Этот параметр был добавлен в PowerShell 7.4.

Тип :

SwitchParameter

Позиция:

Именованный

Значение по умолчанию:

False

Необходимый:

False

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

-AllowUnencryptedAuthentication

Позволяет отправлять учетные данные и секреты по незашифрованным соединениям. По умолчанию предоставляется Credential или любой параметр Аутентификации с Uri, который не начинается с https://. приводит к ошибке, и запрос прерывается, чтобы предотвратить непреднамеренную передачу секретных данных в виде обычного текста по незашифрованным соединениям. Чтобы изменить это поведение на свой страх и риск, укажите параметр AllowUnencryptedAuthentication.

Предупреждение

Использование этого параметра небезопасно и не рекомендуется. Он предоставляется только для совместимости с устаревшими системами, которые не могут обеспечивать зашифрованные соединения. Используйте на свой страх и риск.

Эта функция была добавлена в PowerShell 6.0.0.

Тип :

SwitchParameter

Позиция:

Именованный

Значение по умолчанию:

False

Необходимый:

False

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

-Authentication

Указывает тип явной аутентификации, используемый для запроса. По умолчанию установлено значение Нет. Параметр Authentication нельзя использовать с параметром UseDefaultCredentials.

Доступные варианты аутентификации:

  • Нет: это вариант по умолчанию, если Аутентификация не указана. Явная аутентификация не используется.
  • Базовый: требуются Учетные данные. Учетные данные отправляются в виде заголовка базовой аутентификации RFC 7617 Authorization: Basic в формате base64(user:password).
  • Носитель: требуется параметр Token. Отправляет заголовок RFC 6750 Authorization: Bearer с предоставленным токеном.
  • OAuth: требуется параметр Token. Отправляет заголовок RFC 6750 Authorization: Bearer с предоставленным токеном.

Предоставление Аутентификации переопределяет любые заголовки Authorization, предоставленные в Headers или включенные в WebSession.

Эта функция была добавлена в PowerShell 6.0.0.

Тип :

Тип веб-аутентификации

Принятые значения:

Нет, базовый, на предъявителя, OAuth

Позиция:

Именованный

Значение по умолчанию:

None

Необходимый:

False

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

-Body

Указывает тело запроса. Тело — это содержимое запроса, следующее за заголовками. Вы также можете передать значение тела в Invoke-WebRequest.

Параметр Body можно использовать для указания списка параметров запроса или содержания ответа. В качестве параметров запроса командлет использует метод метода System.Net.WebUtility.UrlEncode для кодирования пар ключ-значение. Дополнительные сведения о кодировании строк для URL-адресов см. в справочнике по методу UrlEncode().

Если входные данные представляют собой запрос POST, а тело представляет собой String, значение слева от первого знака равенства (=) устанавливается в качестве ключа в данных формы. а оставшийся текст устанавливается как значение. Чтобы указать несколько ключей, используйте объект IDictionary, например хэш-таблицу, для Body.

Если входными данными является запрос GET, а телом является IDictionary (обычно хеш-таблица), тело добавляется к URI в качестве параметров запроса. Для других типов запросов (таких как PATCH) тело задается как значение тела запроса в стандартном формате name=value со значениями, закодированными в URL.

Если входными данными является объект System.Xml.XmlNode и в объявлении XML указана кодировка, эта кодировка используется для данных в запросе, если она не переопределена параметром ContentType.

Параметр Body также принимает объект System.Net.Http.MultipartFormDataContent. Это облегчает запросы multipart/form-data. Когда объект MultipartFormDataContent предоставляется для Body, любые заголовки, связанные с содержимым, передаются в ContentType, Headers или < Параметрыstrong>WebSession переопределяются заголовками Content объекта MultipartFormDataContent. Эта функция была добавлена в PowerShell 6.0.0.

Тип :

Объект

Позиция:

Именованный

Значение по умолчанию:

None

Необходимый:

False

Примите ввод конвейера:

True

Принимайте подстановочные знаки:

False

-Certificate

Указывает сертификат клиента, используемый для безопасного веб-запроса. Введите переменную, содержащую сертификат, либо команду или выражение, позволяющее получить сертификат.

Чтобы найти сертификат, используйте Get-PfxCertificate или используйте командлет Get-ChildItem на диске сертификатов (Cert:). Если сертификат недействителен или не имеет достаточных полномочий, команда завершится неудачей.

Тип :

X509Сертификат

Позиция:

Именованный

Значение по умолчанию:

None

Необходимый:

False

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

-CertificateThumbprint

Указывает сертификат цифрового открытого ключа (X509) учетной записи пользователя, у которой есть разрешение на отправку запроса. Введите отпечаток сертификата.

Сертификаты используются при проверке подлинности на основе сертификатов клиентов. Сертификаты можно сопоставить только с локальными учетными записями пользователей, а не с учетными записями домена.

Чтобы просмотреть отпечаток сертификата, используйте команду Get-Item или Get-ChildItem, чтобы найти сертификат в Cert:\CurrentUser\My.

Примечание

Эта функция поддерживается только на платформах ОС Windows.

Тип :

String

Позиция:

Именованный

Значение по умолчанию:

None

Необходимый:

False

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

-ConnectionTimeoutSeconds

Указывает, как долго запрос может находиться в ожидании, прежде чем истечет время ожидания. Введите значение в секундах. Значение по умолчанию, 0, задает неопределенный тайм-аут.

Ответ на запрос системы доменных имен (DNS) может занять до 15 секунд или время ожидания. Если ваш запрос содержит имя хоста, требующее разрешения, и вы установили для ConnectionTimeoutSeconds значение больше нуля, но меньше 15 секунд, до появления WebException выдается, и время ожидания вашего запроса истекает.

Этот параметр заменил параметр TimeoutSec в PowerShell 7.4. Вы можете использовать TimeoutSec в качестве псевдонима для ConnectionTimeoutSeconds.

Тип :

Int32

Псевдонимы:

TimeoutSec

Позиция:

Именованный

Значение по умолчанию:

None

Необходимый:

False

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

-ContentType

Указывает тип контента веб-запроса.

Если значение ContentType содержит формат кодировки (как charset), командлет использует этот формат для кодирования тела веб-запроса. Если ContentType не указывает формат кодировки, вместо него используется формат кодировки по умолчанию. Примером ContentType с форматом кодировки является text/plain; charset=iso-8859-5, который определяет латиницу/кириллицу.

Если этот параметр опущен и метод запроса — POST или PUT, Invoke-WebRequest устанавливает тип контента application/x-www-form-urlencoded. В противном случае тип контента не указывается в вызове.

ContentType переопределяется, когда для Body указан объект MultipartFormDataContent.

Начиная с PowerShell 7.4, если вы используете этот параметр и параметр Headers для определения заголовка Content-Type, значение, указанное в ContentType > используется параметр.

Тип :

String

Позиция:

Именованный

Значение по умолчанию:

None

Необходимый:

False

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

-Credential

Указывает учетную запись пользователя, имеющую разрешение на отправку запроса. По умолчанию используется текущий пользователь.

Введите имя пользователя, например User01 или Domain01\User01, или введите объект PSCredential, созданный с помощью Get-Credential командлет.

Учетные данные можно использовать отдельно или в сочетании с определенными параметрами Аутентификации. При использовании отдельно он передает учетные данные на удаленный сервер только в том случае, если удаленный сервер отправляет запрос проверки подлинности. При использовании с параметрами Аутентификация учетные данные передаются явно.

Учетные данные хранятся в объекте PSCredential, а пароль хранится в виде SecureString.

Примечание

Дополнительную информацию о защите данных SecureString см. в разделе Насколько безопасен SecureString?

Тип :

PSCredential

Позиция:

Именованный

Значение по умолчанию:

Текущий пользователь

Необходимый:

False

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

-CustomMethod

Указывает пользовательский метод, используемый для веб-запроса. Это можно использовать, если метод запроса, требуемый конечной точкой, недоступен для Метода. Метод и CustomMethod нельзя использовать вместе.

В этом примере выполняется HTTP-запрос TEST к API:

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

Эта функция была добавлена в PowerShell 6.0.0.

Тип :

String

Псевдонимы:

CM

Позиция:

Именованный

Значение по умолчанию:

None

Необходимый:

True

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

-DisableKeepAlive

Указывает, что командлет устанавливает для значения KeepAlive в заголовке HTTP значение False. По умолчанию KeepAlive имеет значение True. KeepAlive устанавливает постоянное соединение с сервером для облегчения последующих запросов.

Тип :

SwitchParameter

Позиция:

Именованный

Значение по умолчанию:

False

Необходимый:

False

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

-Form

Преобразует словарь в отправку multipart/form-data. Форма нельзя использовать с Тело. Если используется ContentType, он игнорируется.

В качестве имен полей формы используются ключи словаря. По умолчанию значения формы преобразуются в строковые значения.

Если значением является объект System.IO.FileInfo, передается содержимое двоичного файла. Имя файла передается как свойство filename. Тип MIME установлен как application/octet-stream. Get-Item можно использовать для упрощения предоставления объекта System.IO.FileInfo.

$Form=@{ резюме=Get-Item 'c:\Users\jdoe\Documents\John Doe.pdf' }

Если значение представляет собой тип коллекции, например массивы или списки, поле for отправляется несколько раз. По умолчанию значения списка обрабатываются как строки. Если значением является объект System.IO.FileInfo, передается содержимое двоичного файла. Вложенные коллекции не поддерживаются.

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

В приведенном выше примере поле tags указывается в форме три раза, по одному для каждого из Vacation, Italy и 2017. Поле pictures также отправляется один раз для каждого файла в папке 2017-Italy. Двоичное содержимое файлов в этой папке представляется как значения.

Эта функция была добавлена в PowerShell 6.1.0.

Тип :

IСловарь

Позиция:

Именованный

Значение по умолчанию:

None

Необходимый:

False

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

-Headers

Указывает заголовки веб-запроса. Введите хеш-таблицу или словарь.

Заголовки, связанные с контентом, такие как Content-Type, переопределяются, когда для Body указан объект MultipartFormDataContent.

Начиная с PowerShell 7.4, если вы используете этот параметр для определения заголовка Content-Type и используете параметр ContentType, значение, указанное в параметре ContentType используется.

Тип :

IСловарь

Позиция:

Именованный

Значение по умолчанию:

None

Необходимый:

False

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

-HttpVersion

Указывает версию HTTP, используемую для запроса. По умолчанию используется 1.1.

Допустимые значения:

  • 1.0
  • 1.1
  • 2.0
  • 3.0
Тип :

Версия

Позиция:

Именованный

Значение по умолчанию:

1.1

Необходимый:

False

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

-InFile

Получает содержимое веб-запроса из файла. Введите путь и имя файла. Если вы опустите путь, по умолчанию используется текущее местоположение.

Тип :

String

Позиция:

Именованный

Значение по умолчанию:

None

Необходимый:

False

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

-MaximumRedirection

Указывает, сколько раз PowerShell перенаправляет соединение на альтернативный универсальный идентификатор ресурса (URI), прежде чем соединение завершится сбоем. Значение по умолчанию — 5. Значение 0 (ноль) предотвращает любое перенаправление.

Тип :

Int32

Позиция:

Именованный

Значение по умолчанию:

5

Необходимый:

False

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

-MaximumRetryCount

Указывает, сколько раз PowerShell повторяет попытку подключения при получении кода ошибки от 400 до 599 включительно или 304. Также см. параметр RetryIntervalSec для указания количества повторов.

Тип :

Int32

Позиция:

Именованный

Значение по умолчанию:

None

Необходимый:

False

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

-Method

Указывает метод, используемый для веб-запроса. Допустимые значения этого параметра:

    Default
    Delete
    Get
    Head
    Merge
    Options
    Patch
    Post
    Put
    Trace

Параметр CustomMethod можно использовать для методов запроса, не перечисленных выше.

Тип :

Вебреквестметод

Принятые значения:

По умолчанию, Получить, Заголовок, Опубликовать, Поместить, Удалить, Отследить, Параметры, Объединить, Исправить

Позиция:

Именованный

Значение по умолчанию:

None

Необходимый:

False

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

-NoProxy

Указывает, что командлет не должен использовать прокси-сервер для достижения места назначения. Если вам нужно обойти прокси-сервер, настроенный в среде, используйте этот переключатель. Эта функция была добавлена в PowerShell 6.0.0.

Тип :

SwitchParameter

Позиция:

Именованный

Значение по умолчанию:

False

Необходимый:

True

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

-OperationTimeoutSeconds

Этот тайм-аут применяется к чтению данных в потоке, а не ко времени потока в целом. Значение по умолчанию, 0, задает неопределенный тайм-аут.

Установка значения 30 секунд означает, что любая задержка между данными в потоке более 30 секунд прекращает запрос. Большой файл, загрузка которого занимает несколько минут, не завершится, если поток не остановится более чем на 30 секунд.

Тип :

Int32

Позиция:

Именованный

Значение по умолчанию:

None

Необходимый:

False

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

-OutFile

По умолчанию Invoke-WebRequest возвращает результаты в конвейер. При использовании параметра OutFile результаты сохраняются в указанный файл и не возвращаются в конвейер. Введите путь и имя файла. Чтобы отправить результаты в файл и в конвейер, добавьте параметр Passthru.

Если вы опустите путь, по умолчанию используется текущее местоположение. Имя рассматривается как буквальный путь. Имена, содержащие скобки ([]), должны быть заключены в одинарные кавычки (').

Начиная с PowerShell 7.4, вы можете указать путь к папке без имени файла. В этом случае команда использует имя файла из последнего сегмента разрешенного URI после любых перенаправлений. Если вы указываете путь к папке для OutFile, вы не можете использовать параметр Resume.

Тип :

String

Позиция:

Именованный

Значение по умолчанию:

None

Необходимый:

False

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

-PassThru

Указывает, что командлет возвращает результаты, а также записывает их в файл. Этот параметр действителен только в том случае, если в команде также используется параметр OutFile.

Примечание

При использовании параметра PassThru выходные данные записываются в конвейер, но файл не создается. Это исправлено в PowerShell 7.5-preview.4. Дополнительные сведения см. в статье PowerShell Issue #15409.

Тип :

SwitchParameter

Позиция:

Именованный

Значение по умолчанию:

False

Необходимый:

False

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

-PreserveAuthorizationOnRedirect

Указывает, что командлет должен сохранять заголовок Authorization, если он присутствует, при перенаправлениях.

По умолчанию перед перенаправлением командлет удаляет заголовок Authorization. Указание этого параметра отключает эту логику в тех случаях, когда заголовок необходимо отправить в место перенаправления.

Эта функция была добавлена в PowerShell 6.0.0.

Тип :

SwitchParameter

Позиция:

Именованный

Значение по умолчанию:

False

Необходимый:

False

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

-PreserveHttpMethodOnRedirect

Указывает, что командлет должен сохранять метод запроса при перенаправлениях.

По умолчанию командлет меняет метод на GET при перенаправлении. Указание этого параметра отключает эту логику, чтобы гарантировать возможность использования предполагаемого метода с перенаправлением.

Эта функция была добавлена в PowerShell 7.4.

Тип :

SwitchParameter

Позиция:

Именованный

Значение по умолчанию:

False

Необходимый:

False

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

-Proxy

Указывает прокси-сервер для запроса, а не подключается напрямую к интернет-ресурсу. Введите URI сетевого прокси-сервера.

Тип :

Ури

Позиция:

Именованный

Значение по умолчанию:

None

Необходимый:

False

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

-ProxyCredential

Указывает учетную запись пользователя, имеющую разрешение на использование прокси-сервера, указанного параметром Proxy. По умолчанию используется текущий пользователь.

Введите имя пользователя, например User01 или Domain01\User01, или введите объект PSCredential, например, сгенерированный командой Get. -Credential командлет.

Этот параметр действителен только в том случае, если в команде также используется параметр Proxy. Вы не можете использовать параметры ProxyCredential и ProxyUseDefaultCredentials в одной команде.

Тип :

PSCredential

Позиция:

Именованный

Значение по умолчанию:

Текущий пользователь

Необходимый:

False

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

-ProxyUseDefaultCredentials

Указывает, что командлет использует учетные данные текущего пользователя для доступа к прокси-серверу, указанному параметром Proxy.

Этот параметр действителен только в том случае, если в команде также используется параметр Proxy. Вы не можете использовать параметры ProxyCredential и ProxyUseDefaultCredentials в одной команде.

Тип :

SwitchParameter

Позиция:

Именованный

Значение по умолчанию:

False

Необходимый:

False

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

-Resume

Делает все возможное, чтобы возобновить загрузку части файла. Для Resume требуется OutFile.

Resume работает только с размером локального и удаленного файла и не выполняет никакой другой проверки того, что локальный файл и удаленный файл совпадают.

Если размер локального файла меньше размера удаленного файла, командлет пытается возобновить загрузку файла и добавить оставшиеся байты в конец файла.

Если размер локального файла совпадает с размером удаленного файла, никаких действий не предпринимается, и командлет предполагает, что загрузка уже завершена.

Если размер локального файла больше размера удаленного файла, локальный файл перезаписывается и весь удаленный файл загружается заново. Это поведение аналогично использованию OutFile без Resume.

Если удаленный сервер не поддерживает возобновление загрузки, локальный файл перезаписывается и весь удаленный файл загружается заново. Это поведение аналогично использованию OutFile без Resume.

Если локальный файл не существует, то создается локальный файл и загружается весь удаленный файл. Это поведение аналогично использованию OutFile без Resume.

Эта функция была добавлена в PowerShell 6.1.0.

Тип :

SwitchParameter

Позиция:

Именованный

Значение по умолчанию:

False

Необходимый:

False

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

-RetryIntervalSec

Указывает интервал между повторными попытками подключения при получении кода ошибки от 400 до 599 включительно или 304. Также см. параметр MaximumRetryCount для указания количества повторов. Значение должно находиться в диапазоне от 1 до [int]::MaxValue.

Если код ошибки — 429 и ответ включает в свои заголовки свойство Retry-After, командлет использует это значение в качестве интервала повторных попыток, даже если этот параметр указан.

Тип :

Int32

Позиция:

Именованный

Значение по умолчанию:

5

Необходимый:

False

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

-SessionVariable

Указывает переменную, для которой этот командлет создает сеанс веб-запроса и сохраняет его в значении. Введите имя переменной без символа доллара ($).

Когда вы указываете переменную сеанса, Invoke-WebRequest создает объект сеанса веб-запроса и назначает его переменной с указанным именем в сеансе PowerShell. Вы можете использовать переменную в своем сеансе сразу после завершения команды.

До версии PowerShell 7.4 сеанс веб-запроса не был постоянным соединением. Это объект, который содержит информацию о соединении и запросе, включая файлы cookie, учетные данные, максимальное значение перенаправления и строку пользовательского агента. Вы можете использовать его для обмена состоянием и данными между веб-запросами.

Начиная с PowerShell 7.4, сеанс веб-запроса является постоянным до тех пор, пока свойства сеанса не переопределяются в последующем запросе. В этом случае командлет воссоздает сеанс с новыми значениями. Постоянные сеансы уменьшают накладные расходы на повторные запросы, делая их намного быстрее.

Чтобы использовать сеанс веб-запроса в последующих веб-запросах, укажите переменную сеанса в значении параметра WebSession. PowerShell использует данные объекта сеанса веб-запроса при установке нового соединения. Чтобы переопределить значение в сеансе веб-запроса, используйте параметр командлета, например UserAgent или Credential. Значения параметров имеют приоритет над значениями в сеансе веб-запроса.

Вы не можете использовать параметры SessionVariable и WebSession в одной команде.

Тип :

String

Псевдонимы:

SV

Позиция:

Именованный

Значение по умолчанию:

None

Необходимый:

False

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

-SkipCertificateCheck

Пропускает проверки сертификата. Сюда входят все проверки, такие как срок действия, отзыв, доверенный корневой центр и т. д.

Предупреждение

Использование этого параметра небезопасно и не рекомендуется. Этот переключатель предназначен для использования только с известными хостами, использующими самозаверяющий сертификат в целях тестирования. Используйте на свой страх и риск.

Эта функция была добавлена в PowerShell 6.0.0.

Тип :

SwitchParameter

Позиция:

Именованный

Значение по умолчанию:

False

Необходимый:

False

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

-SkipHeaderValidation

Указывает, что командлет должен добавлять заголовки к запросу без проверки.

Этот переключатель следует использовать для сайтов, которым требуются значения заголовков, не соответствующие стандартам. Указание этого переключателя отключает проверку, позволяя передавать значение без проверки. Если указано, все заголовки добавляются без проверки.

Этот переключатель отключает проверку значений, передаваемых в параметры ContentType, Headers и UserAgent.

Эта функция была добавлена в PowerShell 6.0.0.

Тип :

SwitchParameter

Позиция:

Именованный

Значение по умолчанию:

False

Необходимый:

False

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

-SkipHttpErrorCheck

Этот параметр заставляет командлет игнорировать состояния ошибок HTTP и продолжать обработку ответов. Ответы об ошибках записываются в конвейер так же, как если бы они были успешными.

Этот параметр был введен в PowerShell 7.

Тип :

SwitchParameter

Позиция:

Именованный

Значение по умолчанию:

False

Необходимый:

False

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

-SslProtocol

Устанавливает протоколы SSL/TLS, разрешенные для веб-запроса. По умолчанию разрешены все протоколы SSL/TLS, поддерживаемые системой. SslProtocol позволяет ограничить использование определенных протоколов в целях обеспечения соответствия.

Эти значения определяются как перечисление на основе флагов. С помощью этого параметра вы можете объединить несколько значений, чтобы установить несколько флагов. Значения можно передавать в параметр SslProtocol как массив значений или как строку этих значений, разделенную запятыми. Командлет объединяет значения с помощью операции двоичного ИЛИ. Передача значений в виде массива — самый простой вариант, который также позволяет использовать для значений табуляцию. Возможно, вы не сможете определить несколько параметров на всех платформах.

Примечание

На платформах, отличных от Windows, может быть невозможно указать Tls или Tls12 в качестве опции. Поддержка Tls13 доступна не во всех операционных системах, и ее необходимо проверять для каждой операционной системы.

Эта функция была добавлена в PowerShell 6.0.0, а поддержка Tls13 — в PowerShell 7.1.

Тип :

ВебSslПротокол

Принятые значения:

По умолчанию, Tls, Tls11, Tls12

Позиция:

Именованный

Значение по умолчанию:

None

Необходимый:

False

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

-Token

Токен OAuth или токена носителя, который необходимо включить в запрос. Токен требуется для определенных параметров Аутентификации. Его нельзя использовать независимо.

Token принимает SecureString, содержащий токен. Чтобы предоставить токен вручную, используйте следующее:

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

Этот параметр был введен в PowerShell 6.0.

Тип :

SecureString

Позиция:

Именованный

Значение по умолчанию:

None

Необходимый:

False

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

-TransferEncoding

Указывает значение для заголовка ответа HTTP с кодировкой передачи. Допустимые значения этого параметра:

    Chunked
    Compress
    Deflate
    GZip
    Identity
Тип :

String

Принятые значения:

фрагментированный, сжать, сдуть, gzip, идентичность

Позиция:

Именованный

Значение по умолчанию:

None

Необходимый:

False

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

-UnixSocket

Указывает имя сокета Unix для подключения. Этот параметр поддерживается в системах на базе Unix и Windows версии 1803 и более поздних версий. Дополнительные сведения о поддержке Windows сокетов Unix см. в записи блога Windows/WSL Interop с AF_UNIX.

Этот параметр был добавлен в PowerShell 7.4.

Тип :

UnixDomainSocketEndPoint

Позиция:

Именованный

Значение по умолчанию:

None

Необходимый:

False

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

-Uri

Указывает универсальный идентификатор ресурса (URI) интернет-ресурса, на который отправляется веб-запрос. Введите URI. Этот параметр поддерживает только HTTP или HTTPS.

Этот параметр является обязательным. Имя параметра Uri не является обязательным.

Тип :

Ури

Позиция:

0

Значение по умолчанию:

None

Необходимый:

True

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

-UseBasicParsing

Этот параметр устарел. Начиная с PowerShell 6.0.0, все веб-запросы используют только базовый анализ. Этот параметр включен только для обратной совместимости, и любое его использование не влияет на работу командлета.

Тип :

SwitchParameter

Позиция:

Именованный

Значение по умолчанию:

False

Необходимый:

False

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

-UseDefaultCredentials

Указывает, что командлет использует учетные данные текущего пользователя для отправки веб-запроса. Это нельзя использовать с Аутентификацией или Учетными данными и может поддерживаться не на всех платформах.

Тип :

SwitchParameter

Позиция:

Именованный

Значение по умолчанию:

False

Необходимый:

False

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

-UserAgent

Указывает строку пользовательского агента для веб-запроса.

Пользовательский агент по умолчанию аналогичен Mozilla/5.0 (Windows NT 10.0; Microsoft Windows 10.0.15063; en-US) PowerShell/6.0.0 с небольшими вариациями для каждой операционной системы и платформы.

Чтобы протестировать веб-сайт со стандартной строкой пользовательского агента, используемой большинством интернет-браузеров, используйте свойства класса PSUserAgent, например Chrome, FireFox, InternetExplorer, Opera и Safari.

Например, следующая команда использует строку пользовательского агента для Internet Explorer: Invoke-WebRequest -Uri https://website.com/ -UserAgent ([Microsoft.PowerShell.Commands.PSUserAgent]::InternetExplorer)

Тип :

String

Позиция:

Именованный

Значение по умолчанию:

None

Необходимый:

False

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

-WebSession

Указывает сеанс веб-запроса. Введите имя переменной, включая знак доллара ($).

Чтобы переопределить значение в сеансе веб-запроса, используйте параметр командлета, например UserAgent или Credential. Значения параметров имеют приоритет над значениями в сеансе веб-запроса. Заголовки, связанные с контентом, такие как Content-Type, также переопределяются, когда для Body указан объект MultipartFormDataContent.

В отличие от удаленного сеанса, сеанс веб-запроса не является постоянным соединением. Это объект, который содержит информацию о соединении и запросе, включая файлы cookie, учетные данные, максимальное значение перенаправления и строку пользовательского агента. Вы можете использовать его для обмена состоянием и данными между веб-запросами.

Чтобы создать сеанс веб-запроса, введите имя переменной без знака доллара в значение параметра SessionVariable команды Invoke-WebRequest. Invoke-WebRequest создает сеанс и сохраняет его в переменной. В последующих командах используйте эту переменную в качестве значения параметра WebSession.

Вы не можете использовать параметры SessionVariable и WebSession в одной команде.

Тип :

Сеанс веб-запроса

Позиция:

Именованный

Значение по умолчанию:

None

Необходимый:

False

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

Входы

Объект

В этот командлет можно передать тело веб-запроса.

Выходы

BasicHtmlWebResponseObject

Этот командлет возвращает объект ответа, представляющий результат веб-запроса.

Примечания

PowerShell включает следующие псевдонимы для Invoke-WebRequest:

  • Все платформы:

      iwr

Начиная с PowerShell 6.0.0, Invoke-WebRequest поддерживает только базовый анализ.

Дополнительные сведения см. в разделе BasicHtmlWebResponseObject.

Из-за изменений в .NET Core 3.1 PowerShell 7.0 и более поздних версий использует свойство HttpClient.DefaultProxy для определения конфигурации прокси-сервера.

Значение этого свойства определяется вашей платформой:

  • Для Windows: считывает конфигурацию прокси-сервера из переменных среды. Если эти переменные не определены, свойство извлекается из настроек прокси-сервера пользователя.
  • Для macOS: считывает конфигурацию прокси-сервера из переменных среды. Если эти переменные не определены, свойство извлекается из настроек прокси-сервера системы.
  • Для Linux: считывает конфигурацию прокси-сервера из переменных среды. Если эти переменные не определены, свойство инициализирует ненастроенный экземпляр, который обходит все адреса.

Переменные среды, используемые для инициализации DefaultProxy на платформах Windows и Unix:

  • HTTP_PROXY: имя хоста или IP-адрес прокси-сервера, используемого в HTTP-запросах.
  • HTTPS_PROXY: имя хоста или IP-адрес прокси-сервера, используемого в запросах HTTPS.
  • ALL_PROXY: имя хоста или IP-адрес прокси-сервера, используемого в запросах HTTP и HTTPS, если HTTP_PROXY или HTTPS_PROXY не определены.
  • NO_PROXY: список имен хостов, разделенных запятыми, которые следует исключить из проксирования.

В PowerShell 7.4 добавлена поддержка алгоритма сжатия Brotli.