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 7617Authorization: Basicв форматеbase64(user:password).Носитель: требуется параметр Token. Отправляет заголовок RFC 6750Authorization: Bearerс предоставленным токеном.OAuth: требуется параметр Token. Отправляет заголовок RFC 6750Authorization: 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
Указывает метод, используемый для веб-запроса. Допустимые значения этого параметра:
DefaultDeleteGetHeadMergeOptionsPatchPostPutTraceПараметр 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 с кодировкой передачи. Допустимые значения этого параметра:
ChunkedCompressDeflateGZipIdentity- Тип :
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.