Skip to main content
Volver a herramientas

cURL to PowerShell

Convierte un comando curl a PowerShell Invoke-RestMethod

Acerca de cURL to PowerShell

Reescribe un comando cURL de estilo bash como una llamada a Invoke-RestMethod de PowerShell, con -Uri, -Method, -Headers y -Body en líneas unidas con backtick. Los encabezados y los campos -F se vuelven tablas hash, las cadenas van entre comillas simples para que los signos $ no se expandan, y la respuesta JSON analizada se imprime con ConvertTo-Json -Depth 10. La conversión se hace en tu navegador; no se sube nada.

Categoría: API.

Preguntas frecuentes

¿Por qué el resultado usa Invoke-RestMethod en lugar de Invoke-WebRequest?

▾

Invoke-RestMethod convierte directamente una respuesta JSON en objetos de PowerShell, así que el script solo tiene que imprimirla con $response | ConvertTo-Json -Depth 10. Los parámetros que usa, -Uri, -Method, -Headers y -Body, existen tanto en Windows PowerShell 5.1 como en PowerShell 7.

¿Cómo envía el script de PowerShell los campos -F y las credenciales de -u?

▾

Los campos -F se convierten en una tabla hash que se pasa a -Body; en un POST, Invoke-RestMethod la envía como application/x-www-form-urlencoded y no como multipart, algo que PowerShell 6.1 y posteriores ofrecen con -Form. -u usuario:clave se convierte en una entrada Authorization: Basic dentro de $headers, en lugar de -Credential.

¿Puedo pegar un comando con continuaciones de línea de PowerShell o cmd?

▾

Mejor pega la versión de estilo bash: se entienden los saltos de línea con barra invertida y las comillas simples, dobles o $'...', pero un backtick o un ^ al final de la línea se lee como un argumento más y puede reemplazar la URL. En Windows PowerShell 5.1, curl es un alias de Invoke-WebRequest, así que usa curl.exe para probar el comando original.

¿Qué parámetros de PowerShell reemplazan a -k, -A, -b y --max-time?

▾

No se agrega ninguno automáticamente. Usa -SkipCertificateCheck (PowerShell 6 y posteriores) para -k, -UserAgent para -A, -TimeoutSec para --max-time y una entrada Cookie en $headers para -b; las redirecciones no requieren nada, porque Invoke-RestMethod las sigue por defecto.

Herramientas relacionadas