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.