Búsqueda de sitios web

Invocar-RestMethod (Microsoft.PowerShell.Utility)


Invoke-RestMethod

Módulo:
Microsoft.PowerShell.Utility

Envía una solicitud HTTP o HTTPS a un servicio web RESTful.

Sintaxis

Invoke-RestMethod
      [-FollowRelLink]
      [-MaximumFollowRelLink <Int32>]
      [-ResponseHeadersVariable <String>]
      [-StatusCodeVariable <String>]
      [-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-RestMethod
      [-FollowRelLink]
      [-MaximumFollowRelLink <Int32>]
      [-ResponseHeadersVariable <String>]
      [-StatusCodeVariable <String>]
      [-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-RestMethod
      [-FollowRelLink]
      [-MaximumFollowRelLink <Int32>]
      [-ResponseHeadersVariable <String>]
      [-StatusCodeVariable <String>]
      [-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-RestMethod
      [-FollowRelLink]
      [-MaximumFollowRelLink <Int32>]
      [-ResponseHeadersVariable <String>]
      [-StatusCodeVariable <String>]
      [-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>]

Descripción

El cmdlet Invoke-RestMethod envía solicitudes HTTP y HTTPS a servicios web de transferencia de estado representacional (REST) que devuelven datos ricamente estructurados.

PowerShell formatea la respuesta según el tipo de datos. Para una fuente RSS o ATOM, PowerShell devuelve los nodos XML de elemento o entrada. Para la notación de objetos JavaScript (JSON) o XML, PowerShell convierte o deserializa el contenido en objetos [PSCustomObject].

Nota

Cuando el punto final REST devuelve varios objetos, los objetos se reciben como una matriz. Si canaliza la salida de Invoke-RestMethod a otro comando, se envía como un único objeto [Object[]]. El contenido de esa matriz no se enumera para el siguiente comando de la canalización.

Este cmdlet se introduce en Windows PowerShell 3.0.

A partir de PowerShell 7.0, Invoke-RestMethod admite la configuración de proxy definida por variables de entorno. Consulte la sección de Notas de este artículo.

A partir de PowerShell 7.4, la codificación de caracteres para las solicitudes tiene como valor predeterminado UTF-8 en lugar de ASCII. Si necesita una codificación diferente, debe establecer el atributo charset en el encabezado Content-Type.

Ejemplos

Ejemplo 1: obtener la fuente RSS de PowerShell

En este ejemplo se utiliza el cmdlet Invoke-RestMethod para obtener información de la fuente RSS del blog de PowerShell. El comando utiliza el cmdlet Format-Table para mostrar los valores de las propiedades Title y pubDate de cada blog en una tabla.

Invoke-RestMethod -Uri https://blogs.msdn.microsoft.com/powershell/feed/ |
  Format-Table -Property Title, pubDate

Title                                                                pubDate
-----                                                                -------
Join the PowerShell 10th Anniversary Celebration!                    Tue, 08 Nov 2016 23:00:04 +0000
DSC Resource Kit November 2016 Release                               Thu, 03 Nov 2016 00:19:07 +0000
PSScriptAnalyzer Community Call - Oct 18, 2016                       Thu, 13 Oct 2016 17:52:35 +0000
New Home for In-Box DSC Resources                                    Sat, 08 Oct 2016 07:13:10 +0000
New Social Features on Gallery                                       Fri, 30 Sep 2016 23:04:34 +0000
PowerShellGet and PackageManagement in PowerShell Gallery and GitHub Thu, 29 Sep 2016 22:21:42 +0000
PowerShell Security at DerbyCon                                      Wed, 28 Sep 2016 01:13:19 +0000
DSC Resource Kit September Release                                   Thu, 22 Sep 2016 00:25:37 +0000
PowerShell DSC and implicit remoting broken in KB3176934             Tue, 23 Aug 2016 15:07:50 +0000
PowerShell on Linux and Open Source!                                 Thu, 18 Aug 2016 15:32:02 +0000

Ejemplo 2: ejecutar una solicitud POST

En este ejemplo, un usuario ejecuta Invoke-RestMethod para realizar una solicitud POST en un sitio web de intranet en la organización del usuario.

$Cred = Get-Credential
$Url = "https://server.contoso.com:8089/services/search/jobs/export"
$Body = @{
    search = "search index=_internal | reverse | table index,host,source,sourcetype,_raw"
    output_mode = "csv"
    earliest_time = "-2d@d"
    latest_time = "-1d@d"
}
Invoke-RestMethod -Method 'Post' -Uri $url -Credential $Cred -Body $body -OutFile output.csv

Las credenciales se solicitan y luego se almacenan en $Cred y la URL a la que se accederá se define en $Url.

La variable $Body describe los criterios de búsqueda, especifica CSV como modo de salida y especifica un período de tiempo para los datos devueltos que comienza hace dos días y finaliza hace un día. La variable de cuerpo especifica valores para los parámetros que se aplican a la API REST particular con la que Invoke-RestMethod se está comunicando.

El comando Invoke-RestMethod se ejecuta con todas las variables en su lugar, especificando una ruta y un nombre de archivo para el archivo de salida CSV resultante.

Ejemplo 3: seguir enlaces de relación

Algunas API REST admiten la paginación a través de enlaces de relación según RFC5988. En lugar de analizar el encabezado para obtener la URL de la página siguiente, puede hacer que el cmdlet lo haga por usted. Este ejemplo devuelve las dos primeras páginas de problemas del repositorio de PowerShell GitHub.

$url = 'https://api.github.com/repos/powershell/powershell/issues'
Invoke-RestMethod $url -FollowRelLink -MaximumFollowRelLink 2

Ejemplo 4: Envío simplificado de datos de formulario/multiparte

Algunas API requieren envíos multipart/form-data para cargar archivos y contenido mixto. Este ejemplo demuestra cómo actualizar el perfil de un usuario.

$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-RestMethod -Uri $Uri -Method Post -Form $Form

El formulario de perfil requiere estos campos: firstName, lastName, email, avatar, cumpleaños y pasatiempos. La API espera que se proporcione una imagen para la foto de perfil del usuario en el campo avatar. La API también aceptará múltiples entradas de hobbies que se enviarán en el mismo formulario.

Al crear la tabla hash $Form, los nombres de las claves se utilizan como nombres de campos del formulario. De forma predeterminada, los valores de HashTable se convertirán en cadenas. Si hay un valor System.IO.FileInfo, se enviará el contenido del archivo. Si hay una colección como matrices o listas, el campo del formulario se enviará varias veces.

Al utilizar Get-Item en la clave avatar, el objeto FileInfo se establecerá como valor. El resultado es que se enviarán los datos de la imagen para jdoe.png.

Al proporcionar una lista a la tecla hobbies, el campo hobbies estará presente en los envíos una vez para cada elemento de la lista.

Ejemplo 5: pasar varios encabezados

Las API a menudo requieren encabezados pasados para autenticación o validación. Este ejemplo demuestra cómo pasar múltiples encabezados desde una hash-table a una API REST.

$headers = @{
    'userId' = 'UserIDValue'
    'token' = 'TokenValue'
}
Invoke-RestMethod -Uri $uri -Method Post -Headers $headers -Body $body

Ejemplo 6: enumerar los artículos devueltos en el proceso

GitHub devuelve varios objetos en una matriz. Si canaliza la salida a otro comando, se envía como un único objeto [Object[]].

Para enumerar los objetos en la canalización, canalice los resultados a Write-Output o ajuste el cmdlet entre paréntesis. El siguiente ejemplo cuenta la cantidad de objetos devueltos por GitHub. Luego cuenta la cantidad de objetos enumerados en la canalización.

$uri = 'https://api.github.com/repos/microsoftdocs/powershell-docs/issues'
$x = 0
Invoke-RestMethod -Uri $uri | ForEach-Object { $x++ }
$x
1

$x = 0
(Invoke-RestMethod -Uri $uri) | ForEach-Object { $x++ }
$x
30

$x = 0
Invoke-RestMethod -Uri $uri | Write-Output | ForEach-Object { $x++ }
$x
30

Ejemplo 7: omitir la validación del encabezado

De forma predeterminada, el cmdlet Invoke-RestMethod valida los valores de encabezados conocidos que tienen un formato de valor definido por estándares. El siguiente ejemplo muestra cómo esta validación puede generar un error y cómo puede utilizar el parámetro SkipHeaderValidation para evitar validar valores para puntos finales que toleran valores con formato no válido.

$Uri = 'https://httpbin.org/headers'
$InvalidHeaders = @{
    'If-Match' = '12345'
}

Invoke-RestMethod -Uri $Uri -Headers $InvalidHeaders

Invoke-RestMethod -Uri $Uri -Headers $InvalidHeaders -SkipHeaderValidation |
    Format-List

Invoke-RestMethod: The format of value '12345' is invalid.

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=Root=1-62f150a6-27754fd4226f31b43a3d2874}

httpbin.org es un servicio que devuelve información sobre solicitudes web y respuestas para la resolución de problemas. La variable $Uri se asigna al punto final /headers del servicio, que devuelve los encabezados de una solicitud como contenido en su respuesta.

El encabezado de solicitud If-Match se define en la sección 3.1 de RFC-7232 y requiere que el valor de ese encabezado se defina entre comillas. A la variable $InvalidHeaders se le asigna una tabla hash donde el valor de If-Match no es válido porque está definido como 12345 en lugar de ". 12345".

Llamar a Invoke-RestMethod con encabezados no válidos devuelve un error que informa que el valor formateado no es válido. La solicitud no se envía al punto final.

Llamar a Invoke-RestMethod con el parámetro SkipHeaderValidation ignora el error de validación y envía la solicitud al punto final. Dado que el punto final tolera valores de encabezado no compatibles, el cmdlet devuelve el objeto de respuesta sin errores.

Ejemplo 8: enviar una solicitud mediante HTTP 2.0

Este ejemplo consulta un problema de GitHub utilizando el protocolo HTTP 2.0.

$uri = 'https://api.github.com/repos/microsoftdocs/powershell-docs/issues'
Invoke-RestMethod -Uri $uri -HttpVersion 2.0 -SkipCertificateCheck

Ejemplo 9: enviar una solicitud a una aplicación de socket Unix

Algunas aplicaciones, como Docker, exponen un socket Unix para la comunicación. Este ejemplo solicita una lista de imágenes de Docker utilizando la API de Docker. El cmdlet se conecta al demonio Docker mediante el socket Unix.

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

Parámetros

-AllowInsecureRedirect

Permite redireccionar de HTTPS a HTTP. De forma predeterminada, cualquier solicitud que se redirige de HTTPS a HTTP genera un error y la solicitud se cancela para evitar la comunicación involuntaria en texto sin formato a través de conexiones no cifradas. Para anular este comportamiento bajo su propia responsabilidad, utilice el parámetro AllowInsecureRedirect.

Este parámetro se agregó en PowerShell 7.4.

Tipo :

SwitchParameter

Posición:

Nombrado

Valor predeterminado:

False

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

-AllowUnencryptedAuthentication

Permite el envío de credenciales y secretos a través de conexiones no cifradas. De forma predeterminada, proporcionar Credencial o cualquier opción de Autenticación con un Uri que no comience con https:// resultará en un error y la solicitud se cancelará para evitar la comunicación involuntaria de secretos en texto sin formato a través de conexiones no cifradas. Para anular este comportamiento bajo su propia responsabilidad, proporcione el parámetro AllowUnencryptedAuthentication.

Advertencia

El uso de este parámetro no es seguro y no se recomienda. Se proporciona únicamente por compatibilidad con sistemas heredados que no pueden proporcionar conexiones cifradas. Úselo bajo su propio riesgo.

Esta característica se agregó en PowerShell 6.0.0.

Tipo :

SwitchParameter

Posición:

Nombrado

Valor predeterminado:

False

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

-Authentication

Especifica el tipo de autenticación explícita que se utilizará para la solicitud. El valor predeterminado es Ninguno. El parámetro Authentication no se puede utilizar con el parámetro UseDefaultCredentials.

Opciones de autenticación disponibles:

  • Ninguno: esta es la opción predeterminada cuando no se proporciona Autenticación. No se utilizará ninguna autenticación explícita.
  • Básico: Requiere Credencial. Las credenciales se utilizarán para enviar un encabezado de autenticación básica RFC 7617 Autorización: básica en el formato base64(user:password).
  • Portador: Requiere el parámetro Token. Envía un encabezado RFC 6750 Autorización: Portador con el token proporcionado.
  • OAuth: Requiere el parámetro Token. Envía un encabezado RFC 6750 Autorización: Portador con el token proporcionado.

El suministro de Autenticación anula cualquier encabezado Autorización proporcionado a Encabezados o incluido en WebSession.

Esta característica se agregó en PowerShell 6.0.0.

Tipo :

Tipo de autenticación web

Valores aceptados:

Ninguno, Básico, Portador, OAuth

Posición:

Nombrado

Valor predeterminado:

None

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

-Body

Especifica el cuerpo de la solicitud. El cuerpo es el contenido de la solicitud que sigue a los encabezados. También puede canalizar un valor del cuerpo a Invoke-RestMethod.

El parámetro Cuerpo se puede utilizar para especificar una lista de parámetros de consulta o especificar el contenido de la respuesta. Para los parámetros de consulta, el cmdlet utiliza el método System.Net.WebUtility.UrlEncode para codificar los pares clave-valor. Para obtener más información sobre la codificación de cadenas para URL, consulte la referencia del método UrlEncode().

Cuando la entrada es una solicitud POST y el cuerpo es una Cadena, el valor a la izquierda del primer signo igual (=) se establece como clave en los datos del formulario. y el texto restante se establece como valor. Para especificar varias claves, utilice un objeto IDictionary, como una tabla hash, para el Cuerpo.

Cuando la entrada es una solicitud GET y el cuerpo es un IDictionary (normalmente, una tabla hash), el cuerpo se agrega al URI como parámetros de consulta. Para otros tipos de solicitud (como PATCH), el cuerpo se establece como el valor del cuerpo de la solicitud en el formato estándar name=value con los valores codificados en URL.

Cuando la entrada es un objeto System.Xml.XmlNode y la declaración XML especifica una codificación, esa codificación se utiliza para los datos de la solicitud a menos que el parámetro ContentType la anule.

Cuando el cuerpo es un formulario o es el resultado de otra llamada Invoke-WebRequest, PowerShell establece el contenido de la solicitud en los campos del formulario.

El parámetro Body también puede aceptar un objeto System.Net.Http.MultipartFormDataContent. Esto facilitará las solicitudes multipart/form-data. Cuando se proporciona un objeto MultipartFormDataContent para Body, cualquier encabezado relacionado con el contenido proporcionado a ContentType, Headers o < Los parámetrosWebSession serán anulados por los encabezados de contenido del objeto MultipartFormDataContent. Esta característica se agregó en PowerShell 6.0.0.

Tipo :

Objeto

Posición:

Nombrado

Valor predeterminado:

None

Requerido:

False

Aceptar entrada de canalización:

True

Aceptar caracteres comodín:

False

-Certificate

Especifica el certificado de cliente que se utiliza para una solicitud web segura. Introduzca una variable que contenga un certificado o un comando o expresión que obtenga el certificado.

Para buscar un certificado, utilice Get-PfxCertificate o utilice el cmdlet Get-ChildItem en la unidad Certificado (Cert:). Si el certificado no es válido o no tiene suficiente autoridad, el comando falla.

Tipo :

Certificado X509

Posición:

Nombrado

Valor predeterminado:

None

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

-CertificateThumbprint

Especifica el certificado de clave pública digital (X509) de una cuenta de usuario que tiene permiso para enviar la solicitud. Ingrese la huella digital del certificado.

Los certificados se utilizan en la autenticación basada en certificados de cliente. Los certificados solo se pueden asignar a cuentas de usuarios locales, no a cuentas de dominio.

Para ver la huella digital del certificado, utilice el comando Get-Item o Get-ChildItem para buscar el certificado en Cert:\CurrentUser\My.

Nota

Actualmente, esta función solo es compatible con plataformas con sistema operativo Windows.

Tipo :

String

Posición:

Nombrado

Valor predeterminado:

None

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

-ConnectionTimeoutSeconds

Especifica cuánto tiempo puede estar pendiente la solicitud antes de que expire el tiempo de espera. Introduzca un valor en segundos. El valor predeterminado, 0, especifica un tiempo de espera indefinido.

Una consulta del Sistema de nombres de dominio (DNS) puede tardar hasta 15 segundos en regresar o expirar. Si su solicitud contiene un nombre de host que requiere resolución y establece ConnectionTimeoutSeconds en un valor mayor que cero, pero menos de 15 segundos, pueden pasar 15 segundos o más antes de que se produzca una WebException . se lanza y su solicitud expira.

Este parámetro reemplazó al parámetro TimeoutSec en PowerShell 7.4. Puede utilizar TimeoutSec como alias para ConnectionTimeoutSeconds.

Tipo :

Int32

Alias:

TimeoutSec

Posición:

Nombrado

Valor predeterminado:

0

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

-ContentType

Especifica el tipo de contenido de la solicitud web.

Si el valor de ContentType contiene el formato de codificación (como charset), el cmdlet usa ese formato para codificar el cuerpo de la solicitud web. Si ContentType no especifica un formato de codificación, se utiliza el formato de codificación predeterminado. Un ejemplo de un ContentType con un formato de codificación es text/plain; charset=iso-8859-5, que especifica el alfabeto latino/cirílico.

Si se omite este parámetro y el método de solicitud es POST, Invoke-RestMethod establece el tipo de contenido en application/x-www-form-urlencoded. De lo contrario, el tipo de contenido no se especifica en la llamada.

ContentType se anulará cuando se proporcione un objeto MultipartFormDataContent para Body.

A partir de PowerShell 7.4, si usa este parámetro y el parámetro Headers para definir el encabezado Content-Type, el valor especificado en ContentType se utiliza el parámetro.

Tipo :

String

Posición:

Nombrado

Valor predeterminado:

None

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

-Credential

Especifica una cuenta de usuario que tiene permiso para enviar la solicitud. El valor predeterminado es el usuario actual.

Escriba un nombre de usuario, como Usuario01 o Dominio01\Usuario01, o introduzca un objeto PSCredential generado por Get-Credential. código> cmdlet.

La Credencial se puede utilizar sola o junto con determinadas opciones del parámetro Autenticación. Cuando se usa solo, solo proporcionará credenciales al servidor remoto si el servidor remoto envía una solicitud de desafío de autenticación. Cuando se utiliza con opciones de Autenticación, las credenciales se enviarán explícitamente.

Las credenciales se almacenan en un objeto PSCredential y la contraseña se almacena como SecureString.

Nota

Para obtener más información sobre la protección de datos de SecureString, consulte ¿Qué tan seguro es SecureString?.

Tipo :

PSCredencial

Posición:

Nombrado

Valor predeterminado:

Usuario actual

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

-CustomMethod

Especifica el método personalizado utilizado para la solicitud web. Esto se puede utilizar con el método de solicitud requerido por el punto final; no es una opción disponible en el Método. Método y CustomMethod no se pueden utilizar juntos.

Ejemplo :

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

Esto realiza una solicitud HTTP TEST a la API.

Esta característica se agregó en PowerShell 6.0.0.

Tipo :

String

Alias:

CM

Posición:

Nombrado

Valor predeterminado:

None

Requerido:

True

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

-DisableKeepAlive

Indica que el cmdlet establece el valor KeepAlive en el encabezado HTTP en False. De forma predeterminada, KeepAlive es Verdadero. KeepAlive establece una conexión persistente con el servidor para facilitar solicitudes posteriores.

Tipo :

SwitchParameter

Posición:

Nombrado

Valor predeterminado:

False

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

-FollowRelLink

Indica que el cmdlet debe seguir los vínculos de relación.

Algunas API REST admiten la paginación a través de enlaces de relación según RFC5988. En lugar de analizar el encabezado para obtener la URL de la página siguiente, puede hacer que el cmdlet lo haga por usted. Para establecer cuántas veces seguir los enlaces de relación, utilice el parámetro MaximumFollowRelLink.

Cuando se utiliza este modificador, el cmdlet devuelve una colección de páginas de resultados. Cada página de resultados puede contener varios elementos de resultados.

Esta característica se agregó en PowerShell 6.0.0.

Tipo :

SwitchParameter

Alias:

FL

Posición:

Nombrado

Valor predeterminado:

False

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

-Form

Convierte un diccionario en un envío multipart/form-data. Formulario no se puede utilizar con Cuerpo. Si se ignorará ContentType.

Las claves del diccionario se utilizarán como nombres de campos del formulario. De forma predeterminada, los valores del formulario se convertirán en valores de cadena.

Si el valor es un objeto System.IO.FileInfo, se enviará el contenido del archivo binario. El nombre del archivo se enviará como filename. El MIME se establecerá como application/octet-stream. Get-Item se puede utilizar para simplificar el suministro del objeto System.IO.FileInfo.

$Form=@{ resume=Get-Item 'c:\Users\jdoe\Documents\John Doe.pdf' }

Si el valor es un tipo de colección, como una matriz o una lista, el campo for se enviará varias veces. Los valores de la lista se tratarán como cadenas de forma predeterminada. Si el valor es un objeto System.IO.FileInfo, se enviará el contenido del archivo binario. No se admiten colecciones anidadas.

$Form=@{ etiquetas='Vacaciones', 'Italia', '2017' imágenes=Get-ChildItem 'c:\Users\jdoe\Pictures\2017-Italia' }

En el ejemplo anterior, el campo tags se proporcionará tres veces en el formulario, una para cada uno de Vacation, Italia y . 2017. El campo imágenes también se enviará una vez para cada archivo en la carpeta 2017-Italia. El contenido binario de los archivos en esa carpeta se enviará como valores.

Esta característica se agregó en PowerShell 6.1.0.

Tipo :

Diccionario

Posición:

Nombrado

Valor predeterminado:

None

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

-Headers

Especifica los encabezados de la solicitud web. Ingrese una tabla hash o un diccionario.

Los encabezados relacionados con el contenido, como Content-Type, se anulan cuando se proporciona un objeto MultipartFormDataContent para Body.

A partir de PowerShell 7.4, si usa este parámetro para definir el encabezado Content-Type y usa el parámetro ContentType, el valor especificado en el parámetro ContentType se utiliza.

Tipo :

Diccionario

Posición:

Nombrado

Valor predeterminado:

None

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

-HttpVersion

Especifica la versión HTTP utilizada para la solicitud. El valor predeterminado es 1.1.

Los valores válidos son:

  • 1.0
  • 1.1
  • 2.0
  • 3.0
Tipo :

Versión

Posición:

Nombrado

Valor predeterminado:

None

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

-InFile

Obtiene el contenido de la solicitud web de un archivo.

Introduzca una ruta y un nombre de archivo. Si omite la ruta, el valor predeterminado es la ubicación actual.

Tipo :

String

Posición:

Nombrado

Valor predeterminado:

None

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

-MaximumFollowRelLink

Especifica cuántas veces seguir los enlaces de relación si se utiliza FollowRelLink. Es posible que se necesite un valor menor si la API REST se acelera debido a demasiadas solicitudes. El valor predeterminado es [Int32]::MaxValue. Un valor de 0 (cero) impide seguir enlaces de relación.

Tipo :

Int32

Alias:

ML

Posición:

Nombrado

Valor predeterminado:

Int32.MaxValue

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

-MaximumRedirection

Especifica cuántas veces PowerShell redirige una conexión a un identificador uniforme de recursos (URI) alternativo antes de que falle la conexión. El valor predeterminado es 5. Un valor de 0 (cero) impide toda redirección.

Tipo :

Int32

Posición:

Nombrado

Valor predeterminado:

None

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

-MaximumRetryCount

Especifica cuántas veces PowerShell reintenta una conexión cuando se recibe un código de error entre 400 y 599, inclusive o 304. Además, consulte el parámetro RetryIntervalSec para especificar el número de segundos entre reintentos.

Tipo :

Int32

Posición:

Nombrado

Valor predeterminado:

None

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

-Method

Especifica el método utilizado para la solicitud web. Los valores aceptables para este parámetro son:

    Default
    Delete
    Get
    Head
    Merge
    Options
    Patch
    Post
    Put
    Trace

El parámetro CustomMethod se puede utilizar para métodos de solicitud que no aparecen en la lista anterior.

Tipo :

Método de solicitud web

Valores aceptados:

Predeterminado, Obtener, Encabezar, Publicar, Poner, Eliminar, Seguimiento, Opciones, Fusionar, Parche

Posición:

Nombrado

Valor predeterminado:

None

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

-NoProxy

Indica que el cmdlet no utilizará un proxy para llegar al destino.

Cuando necesite omitir el proxy configurado en Internet Explorer o un proxy especificado en el entorno, utilice este modificador.

Este parámetro se introdujo en PowerShell 6.0.

Tipo :

SwitchParameter

Posición:

Nombrado

Valor predeterminado:

False

Requerido:

True

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

-OperationTimeoutSeconds

Este tiempo de espera se aplica a las lecturas de datos dentro de una transmisión, no al tiempo de la transmisión en su conjunto. El valor predeterminado, 0, especifica un tiempo de espera indefinido.

Establecer el valor en 30 segundos significa que cualquier retraso de más de 30 segundos entre los datos del flujo finaliza la solicitud. Un archivo grande que tarda varios minutos en descargarse no finalizará a menos que la transmisión se detenga durante más de 30 segundos.

Tipo :

Int32

Posición:

Nombrado

Valor predeterminado:

None

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

-OutFile

De forma predeterminada, Invoke-RestMethod devuelve los resultados a la canalización. Cuando utiliza el parámetro OutFile, los resultados se guardan en el archivo especificado y no se devuelven a la canalización. Ingrese una ruta y un nombre de archivo. Para enviar los resultados a un archivo y a la canalización, agregue el parámetro Passthru.

Si omite la ruta, el valor predeterminado es la ubicación actual. El nombre se trata como una ruta literal. Los nombres que contienen corchetes ([]) deben estar entre comillas simples (').

A partir de PowerShell 7.4, puede especificar una ruta de carpeta sin el nombre del archivo. Cuando lo hace, el comando utiliza el nombre de archivo del último segmento del URI resuelto después de cualquier redireccionamiento. Cuando especifica una ruta de carpeta para OutFile, no puede utilizar el parámetro Resume.

Tipo :

String

Posición:

Nombrado

Valor predeterminado:

None

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

-PassThru

Este parámetro es válido sólo cuando el parámetro OutFile también se utiliza en el comando. La intención es escribir los resultados en el archivo y en la canalización.

Nota

Cuando utiliza el parámetro PassThru, la salida se escribe en la canalización pero no se crea el archivo. Esto se solucionó en PowerShell 7.5-preview.4. Para obtener más información, consulte el número 15409 de PowerShell.

Tipo :

SwitchParameter

Posición:

Nombrado

Valor predeterminado:

Sin salida

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

-PreserveAuthorizationOnRedirect

Indica que el cmdlet debe conservar el encabezado Authorization, cuando esté presente, en todas las redirecciones.

De forma predeterminada, el cmdlet elimina el encabezado Autorización antes de redirigir. Al especificar este parámetro se deshabilita esta lógica en los casos en los que el encabezado debe enviarse a la ubicación de redirección.

Esta característica se agregó en PowerShell 6.0.0.

Tipo :

SwitchParameter

Posición:

Nombrado

Valor predeterminado:

False

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

-PreserveHttpMethodOnRedirect

Indica que el cmdlet debe conservar el método de la solicitud en todas las redirecciones.

De forma predeterminada, el cmdlet cambia el método a GET cuando se redirige. Al especificar este parámetro se deshabilita esta lógica para garantizar que el método previsto se pueda utilizar con la redirección.

Esta característica se agregó en PowerShell 7.4.

Tipo :

SwitchParameter

Posición:

Nombrado

Valor predeterminado:

False

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

-Proxy

Utiliza un servidor proxy para la solicitud, en lugar de conectarse directamente al recurso de Internet. Ingrese el Identificador uniforme de recursos (URI) de un servidor proxy de red.

Esta característica se agregó en PowerShell 6.0.0.

Tipo :

uri

Posición:

Nombrado

Valor predeterminado:

None

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

-ProxyCredential

Especifica una cuenta de usuario que tiene permiso para utilizar el servidor proxy especificado por el parámetro Proxy. El valor predeterminado es el usuario actual.

Escriba un nombre de usuario, como Usuario01 o Dominio01\Usuario01, Usuario@Dominio.Com, o introduzca un PSCredential objeto, como uno generado por el cmdlet Get-Credential.

Este parámetro es válido sólo cuando el parámetro Proxy también se utiliza en el comando. No puede utilizar los parámetros ProxyCredential y ProxyUseDefaultCredentials en el mismo comando.

Tipo :

PSCredencial

Posición:

Nombrado

Valor predeterminado:

None

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

-ProxyUseDefaultCredentials

Indica que el cmdlet usa las credenciales del usuario actual para acceder al servidor proxy especificado por el parámetro Proxy.

Este parámetro es válido sólo cuando el parámetro Proxy también se utiliza en el comando. No puede utilizar los parámetros ProxyCredential y ProxyUseDefaultCredentials en el mismo comando.

Tipo :

SwitchParameter

Posición:

Nombrado

Valor predeterminado:

False

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

-ResponseHeadersVariable

Crea una variable que contiene un diccionario de encabezados de respuesta. Introduzca un nombre de variable sin el símbolo del signo de dólar ($). Las claves del diccionario contienen los nombres de los campos y los valores del encabezado de respuesta devuelto por el servidor web.

Esta característica se agregó en PowerShell 6.0.0.

Tipo :

String

Alias:

RHV

Posición:

Nombrado

Valor predeterminado:

None

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

-Resume

Realiza un intento de máximo esfuerzo para reanudar la descarga de un archivo parcial. El parámetro Resume requiere el parámetro OutFile.

Reanudar solo opera con el tamaño del archivo local y del archivo remoto y no realiza ninguna otra validación de que el archivo local y el archivo remoto sean iguales.

Si el tamaño del archivo local es menor que el tamaño del archivo remoto, el cmdlet intentará reanudar la descarga del archivo y agregará los bytes restantes al final del archivo.

Si el tamaño del archivo local es el mismo que el tamaño del archivo remoto, no se realiza ninguna acción y el cmdlet supone que la descarga ya se completó.

Si el tamaño del archivo local es mayor que el tamaño del archivo remoto, el archivo local se sobrescribirá y el archivo remoto completo se volverá a descargar por completo. Este comportamiento es el mismo que usar OutFile sin Resume.

Si el servidor remoto no admite la reanudación de la descarga, se sobrescribirá el archivo local y se volverá a descargar todo el archivo remoto. Este comportamiento es el mismo que usar OutFile sin Resume.

Si el archivo local no existe, se creará el archivo local y se descargará por completo el archivo remoto completo. Este comportamiento es el mismo que usar OutFile sin Resume.

Esta característica se agregó en PowerShell 6.1.0.

Tipo :

SwitchParameter

Posición:

Nombrado

Valor predeterminado:

False

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

-RetryIntervalSec

Especifica el intervalo entre reintentos de conexión cuando se recibe un código de error entre 400 y 599, inclusive o 304. El valor debe estar entre 1 y [int]::MaxValue. Cuando el código de error es 429 y la respuesta incluye la propiedad Retry-After en sus encabezados, el cmdlet usa ese valor para el intervalo de reintento, incluso si se especifica este parámetro.

Además, consulte el parámetro MaximumRetryCount para especificar el número de reintentos.

Tipo :

Int32

Posición:

Nombrado

Valor predeterminado:

5

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

-SessionVariable

Crea una variable que contiene la sesión de solicitud web. Introduzca un nombre de variable sin el símbolo del signo de dólar ($).

Cuando especifica una variable de sesión, Invoke-RestMethod crea un objeto de sesión de solicitud web y lo asigna a una variable con el nombre especificado en su sesión de PowerShell. Puede utilizar la variable en su sesión tan pronto como se complete el comando.

Antes de PowerShell 7.4, la sesión de solicitud web no era una conexión persistente. Es un objeto que contiene información sobre la conexión y la solicitud, incluidas cookies, credenciales, el valor máximo de redirección y la cadena del agente de usuario. Puede usarlo para compartir estado y datos entre solicitudes web.

A partir de PowerShell 7.4, la sesión de solicitud web es persistente siempre que las propiedades de la sesión no se invaliden en una solicitud posterior. Cuando lo son, el cmdlet recrea la sesión con los nuevos valores. Las sesiones persistentes reducen la sobrecarga de solicitudes repetidas, haciéndolas mucho más rápidas.

Para utilizar la sesión de solicitud web en solicitudes web posteriores, especifique la variable de sesión en el valor del parámetro WebSession. PowerShell utiliza los datos del objeto de sesión de solicitud web al establecer la nueva conexión. Para anular un valor en la sesión de solicitud web, utilice un parámetro de cmdlet, como UserAgent o Credential. Los valores de los parámetros tienen prioridad sobre los valores en la sesión de solicitud web.

No puede utilizar los parámetros SessionVariable y WebSession en el mismo comando.

Tipo :

String

Alias:

SV

Posición:

Nombrado

Valor predeterminado:

None

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

-SkipCertificateCheck

Omite las comprobaciones de validación de certificados que incluyen todas las validaciones, como caducidad, revocación, autoridad raíz confiable, etc.

Advertencia

El uso de este parámetro no es seguro y no se recomienda. Este conmutador solo está diseñado para usarse contra hosts conocidos mediante un certificado autofirmado con fines de prueba. Úselo bajo su propio riesgo.

Esta característica se agregó en PowerShell 6.0.0.

Tipo :

SwitchParameter

Posición:

Nombrado

Valor predeterminado:

False

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

-SkipHeaderValidation

Indica que el cmdlet debe agregar encabezados a la solicitud sin validación.

Este modificador debe usarse para sitios que requieren valores de encabezado que no se ajustan a los estándares. Al especificar este modificador se deshabilita la validación para permitir que el valor se pase sin marcar. Cuando se especifica, todos los encabezados se agregan sin validación.

Esto deshabilitará la validación de los valores pasados a los parámetros ContentType, Headers y UserAgent.

Esta característica se agregó en PowerShell 6.0.0.

Tipo :

SwitchParameter

Posición:

Nombrado

Valor predeterminado:

False

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

-SkipHttpErrorCheck

Este parámetro hace que el cmdlet ignore los estados de error HTTP y continúe procesando respuestas. Las respuestas de error se escriben en la canalización como si fueran exitosas.

Este parámetro se introdujo en PowerShell 7.

Tipo :

SwitchParameter

Posición:

Nombrado

Valor predeterminado:

False

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

-SslProtocol

Establece los protocolos SSL/TLS permitidos para la solicitud web. De forma predeterminada, se permiten todos los protocolos SSL/TLS admitidos por el sistema. SslProtocol permite limitar protocolos específicos con fines de cumplimiento.

Estos valores se definen como una enumeración basada en indicadores. Puede combinar varios valores para establecer varios indicadores utilizando este parámetro. Los valores se pueden pasar al parámetro SslProtocol como una matriz de valores o como una cadena de esos valores separada por comas. El cmdlet combinará los valores mediante una operación binaria O. Pasar valores como una matriz es la opción más simple y también le permite usar la función de tabulación en los valores. Es posible que no pueda proporcionar varios valores en todas las plataformas.

Nota

En plataformas que no sean Windows, es posible que no sea posible proporcionar Tls o Tls12 como opción. La compatibilidad con Tls13 no está disponible en todos los sistemas operativos y deberá verificarse según cada sistema operativo.

Esta característica se agregó en PowerShell 6.0.0 y se agregó compatibilidad con Tls13 en PowerShell 7.1.

Tipo :

Protocolo WebSsl

Valores aceptados:

Predeterminado, Tls, Tls11, Tls12, Tls13

Posición:

Nombrado

Valor predeterminado:

None

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

-StatusCodeVariable

Crea una variable que contiene un código de estado HTTP resultado de la solicitud. Introduzca un nombre de variable sin el símbolo del signo de dólar ($).

El parámetro puede identificar mensajes de éxito o mensajes de error cuando se usa con el parámetro SkipHttpErrorCheck.

Introduzca el nombre de la variable del parámetro como una cadena como -StatusCodeVariable "scv".

Este parámetro se introdujo en PowerShell 7.

Tipo :

String

Posición:

Nombrado

Valor predeterminado:

None

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

-Token

El token de OAuth o portador que se incluirá en la solicitud. Ciertas opciones de Autenticación requieren el Token. No se puede utilizar de forma independiente.

Token toma un SecureString que contiene el token. Para suministrar el token, utilice manualmente lo siguiente:

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

Este parámetro se introdujo en PowerShell 6.0.

Tipo :

SecureString

Posición:

Nombrado

Valor predeterminado:

None

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

-TransferEncoding

Especifica un valor para el encabezado de respuesta HTTP de codificación de transferencia. Los valores aceptables para este parámetro son:

  • fragmentado
  • Comprimir
  • Desinflar
  • GZip
  • Identidad
Tipo :

String

Valores aceptados:

fragmentado, comprimir, desinflar, gzip, identidad

Posición:

Nombrado

Valor predeterminado:

None

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

-UnixSocket

Especifica el nombre del socket Unix al que conectarse. Este parámetro es compatible con sistemas basados en Unix y Windows versión 1803 y posteriores. Para obtener más información sobre la compatibilidad de Windows con sockets Unix, consulte la publicación del blog Interoperabilidad de Windows/WSL con AF_UNIX.

Este parámetro se agregó en PowerShell 7.4.

Tipo :

UnixDomainSocketEndPoint

Posición:

Nombrado

Valor predeterminado:

None

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

-Uri

Especifica el identificador uniforme de recursos (URI) del recurso de Internet al que se envía la solicitud web. Este parámetro admite valores HTTP, HTTPS, FTP y FILE.

Este parámetro es obligatorio. El nombre del parámetro (Uri) es opcional.

Tipo :

uri

Posición:

0

Valor predeterminado:

None

Requerido:

True

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

-UseBasicParsing

Este parámetro ha quedado obsoleto. A partir de PowerShell 6.0.0, todas las solicitudes web utilizan únicamente análisis básico. Este parámetro se incluye únicamente por compatibilidad con versiones anteriores y su uso no tendrá ningún efecto en el funcionamiento del cmdlet.

Tipo :

SwitchParameter

Posición:

Nombrado

Valor predeterminado:

False

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

-UseDefaultCredentials

Indica que el cmdlet usa las credenciales del usuario actual para enviar la solicitud web. Esto no se puede utilizar con Autenticación o Credencial y es posible que no sea compatible con todas las plataformas.

Tipo :

SwitchParameter

Posición:

Nombrado

Valor predeterminado:

False

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

-UserAgent

Especifica una cadena de agente de usuario para la solicitud web.

El agente de usuario predeterminado es similar a Mozilla/5.0 (Windows NT 10.0; Microsoft Windows 10.0.15063; en-US) PowerShell/6.0.0 con ligeras variaciones para cada sistema operativo y plataforma.

Para probar un sitio web con la cadena de agente de usuario estándar que utilizan la mayoría de los navegadores de Internet, utilice las propiedades de la clase PSUserAgent, como Chrome, FireFox, InternetExplorer, Opera y Safari.

Tipo :

String

Posición:

Nombrado

Valor predeterminado:

None

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

-WebSession

Especifica una sesión de solicitud web. Introduzca el nombre de la variable, incluido el signo de dólar ($).

Para anular un valor en la sesión de solicitud web, utilice un parámetro de cmdlet, como UserAgent o Credential. Los valores de los parámetros tienen prioridad sobre los valores en la sesión de solicitud web. Los encabezados relacionados con el contenido, como Content-Type, también se anularán cuando se proporcione un objeto MultipartFormDataContent para Body.

A diferencia de una sesión remota, la sesión de solicitud web no es una conexión persistente. Es un objeto que contiene información sobre la conexión y la solicitud, incluidas cookies, credenciales, el valor máximo de redirección y la cadena del agente de usuario. Puede usarlo para compartir estado y datos entre solicitudes web.

Para crear una sesión de solicitud web, ingrese un nombre de variable, sin un signo de dólar, en el valor del parámetro SessionVariable de un comando Invoke-RestMethod. Invoke-RestMethod crea la sesión y la guarda en la variable. En comandos posteriores, utilice la variable como valor del parámetro WebSession.

No puede utilizar los parámetros SessionVariable y WebSession en el mismo comando.

Tipo :

Sesión de solicitud web

Posición:

Nombrado

Valor predeterminado:

None

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

Entradas

Objeto

Puede canalizar el cuerpo de una solicitud web a este cmdlet.

Salidas

Int64

Cuando la solicitud devuelve un número entero, este cmdlet devuelve ese número entero.

Cadena

Cuando la solicitud devuelve una cadena, este cmdlet devuelve esa cadena.

Documento XML

Cuando la solicitud devuelve XML válido, este cmdlet lo devuelve como un XmlDocument.

PSObject

Cuando la solicitud devuelve cadenas JSON, este cmdlet devuelve un PSObject que representa los datos.

Notas

PowerShell incluye los siguientes alias para Invoke-RestMethod:

  • Todas las plataformas:

      irm

Es posible que algunas funciones no estén disponibles en todas las plataformas.

Debido a cambios en .NET Core 3.1, PowerShell 7.0 y versiones posteriores utilizan la propiedad HttpClient.DefaultProxy para determinar la configuración del proxy.

El valor de esta propiedad tiene reglas diferentes según su plataforma:

  • Para Windows: lee la configuración del proxy desde las variables de entorno o, si no están definidas, desde la configuración del proxy del usuario.
  • Para macOS: lee la configuración del proxy desde las variables de entorno o, si no están definidas, desde la configuración del proxy del sistema.
  • Para Linux: lee la configuración del proxy de las variables de entorno o, en caso de que no estén definidas, esta propiedad inicializa una instancia no configurada que omite todas las direcciones.

Las variables de entorno utilizadas para la inicialización de DefaultProxy en Windows y plataformas basadas en Unix son:

  • HTTP_PROXY: el nombre de host o la dirección IP del servidor proxy utilizado en las solicitudes HTTP.
  • HTTPS_PROXY: el nombre de host o la dirección IP del servidor proxy utilizado en las solicitudes HTTPS.
  • ALL_PROXY: el nombre de host o la dirección IP del servidor proxy utilizado en las solicitudes HTTP y HTTPS en caso de que HTTP_PROXY o HTTPS_PROXY no estén definidos.
  • NO_PROXY: una lista de nombres de host separados por comas que deben excluirse del proxy.

PowerShell 7.4 agregó soporte para el algoritmo de compresión Brotli.

Artículos relacionados