PowerShell:
Enviando una solicitud http
Cómo hacerlo:
PowerShell facilita el envío de solicitudes HTTP con los cmdlets Invoke-WebRequest
e Invoke-RestMethod
. Aquí te muestro cómo usarlos.
# Obtén contenido de una página web con Invoke-WebRequest
$response = Invoke-WebRequest -Uri "https://api.example.com/data"
$response.Content
# Usando Invoke-RestMethod para obtener datos en formato JSON y convertirlos directamente en objetos de PowerShell
$data = Invoke-RestMethod -Uri "https://api.example.com/data" -Method Get
$data
Ejemplo de salida para Invoke-WebRequest
:
<!DOCTYPE html>
<html>
<body>
<h1>Ejemplo de Respuesta</h1>
</body>
</html>
Ejemplo de salida para Invoke-RestMethod
(suponiendo que la API devuelve JSON):
name : PowerShell Ejemplo
description : Esto es un objeto devuelto por Invoke-RestMethod
id : 12345
Usa Invoke-RestMethod
si trabajas con APIs RESTful y necesitas procesar objetos; usa Invoke-WebRequest
para datos crudos o interacciones web más detalladas.
Profundización:
Antes de PowerShell, se usaban otros lenguajes y herramientas como cURL o herramientas específicas de cada lenguaje para enviar solicitudes HTTP.
PowerShell facilitó el proceso con cmdlets específicos. Invoke-RestMethod
se introdujo en PowerShell 3.0 y fue diseñado para APIs REST, ya que puede interpretar formatos estándar como JSON y XML, transformándolos en objetos de PowerShell.
Invoke-WebRequest
es más versátil y te da acceso a más detalles de la respuesta, como los headers HTTP, status codes, y la posibilidad de interactuar con sesiones web.
Recuerda manejar errores con try/catch y validar los códigos de estado (status codes) de las respuestas HTTP para asegurar que tu solicitud fue procesada correctamente.