cURL a PowerShell
Pega un comando curl y obtén un script de PowerShell con Invoke-RestMethod y un entrecomillado que no se come tu token.
cURL a PowerShell convierte en tu navegador. Los comandos con tokens o credenciales no salen de tu dispositivo.
Abrir cURL a C#
Acerca de cURL to PowerShell
Pegar un comando curl en PowerShell casi nunca funciona, y no solo porque cambien los flags. PowerShell interpola variables dentro de las comillas dobles, así que un token con un signo de dólar se convierte en silencio en una cadena vacía y la petición devuelve 401 sin más pistas. Este conversor emite literales entre comillas simples, que PowerShell trata como texto en bruto. Las cabeceras se convierten en hashtable y un cuerpo JSON pasa por ConvertTo-Json para que puedas editarlo antes de enviarlo.
Características
- Invoke-RestMethod con los parámetros repartidos en líneas legibles
- Cabeceras como hashtable de PowerShell
- Cuerpos JSON como hashtable canalizado a ConvertTo-Json
- Comillas simples para que un $ del token nunca se interpole
- Autenticación básica reconstruida como cabecera Base64
- La conversión ocurre en tu navegador
Cómo usar cURL to PowerShell
- Copia el comando curl de la documentación
- Pégalo en el panel izquierdo
- Revisa el PowerShell generado a la derecha
- Cópialo o descárgalo como fichero .ps1
Ejemplo
Entrada
curl https://api.example.com/users -H "X-Api-Key: abc123"
Salida
$headers = @{
'X-Api-Key' = 'abc123'
}
$response = Invoke-RestMethod `
-Uri 'https://api.example.com/users' `
-Method GET `
-Headers $headers
Las comillas simples mantienen el valor literal, contenga los caracteres que contenga.
Errores comunes y solución de problemas
- La petición devuelve 401 aunque el token es correcto. — Una cadena entre comillas dobles interpola todo lo que sigue a un dólar y parte del token desaparece. Conserva las comillas simples o escapa el dólar con una tilde invertida.
- El cuerpo JSON llega mal formado o con tipos raros. — Revisa el parámetro -Depth de ConvertTo-Json: por defecto es 2 y aplana los objetos anidados. El código generado lo fija en 10 justo por eso.
- Los caracteres no ASCII salen corruptos. — Windows PowerShell 5.1 usa por defecto una codificación distinta de UTF-8 en el cuerpo. Pasa a PowerShell 7 o convierte el JSON a bytes UTF-8.
Preguntas frecuentes
- ¿curl es lo mismo que Invoke-WebRequest en PowerShell?
- En Windows PowerShell 5.1, curl es un alias de Invoke-WebRequest, y por eso pegar un comando curl real falla con errores de parámetros. PowerShell 7 eliminó el alias.
- ¿Uso Invoke-RestMethod o Invoke-WebRequest?
- Invoke-RestMethod para API, porque convierte la respuesta JSON en objetos. Invoke-WebRequest devuelve la respuesta cruda con código de estado y cabeceras, útil cuando esos datos importan.
- ¿Cómo envío autenticación básica en PowerShell?
- Codifica usuario:contraseña en Base64 y pásalo como cabecera Authorization. El parámetro -Credential existe pero solo envía credenciales tras un desafío que muchas API no emiten.
- ¿Por qué los parámetros van separados con tildes invertidas?
- Es el carácter de continuación de línea de PowerShell, que permite repartir una llamada larga en varias líneas. Debe ser el último carácter de la línea, sin espacios detrás.
Herramientas relacionadas
- cURL to Ruby — Convert a curl command to Ruby Net::HTTP code.
- curl a Python — Convierte un comando curl en un script de Python con requests.
- cURL a C# — Convierte un comando curl en código C# con HttpClient.
- curl a Node.js — Convierte un comando curl en código de Node.js con axios.
- curl a Go — Convierte un comando curl en código de Go con net/http.
- cURL a Fetch — Convierte un comando curl en una llamada fetch() de JavaScript.
Todas las herramientas de ArrayKit