araç köşesi

Convertir comandos curl a código

Convierta un comando curl copiado del navegador o de la documentación de una API en código PHP, Python (requests) o JavaScript (fetch)

Sus datos se quedan con usted. La conversión ocurre dentro del navegador; no se envía nada a ningún servidor.

Cómo funciona

La documentación de las API y la función «Copiar como cURL» del navegador entregan las solicitudes como comandos curl; esta herramienta convierte ese comando en código que puede pegar en su propio programa. Por ejemplo, curl -X POST https://api.example.com/v1/orders con el encabezado -H "Content-Type: application/json" y el cuerpo -d '{"producto": "cuaderno", "cantidad": 2}': en Python obtiene las variables url, headers y data y la llamada requests.post(url, headers=headers, data=data); en PHP la misma solicitud queda como CURLOPT_HTTPHEADER y CURLOPT_POSTFIELDS dentro de curl_setopt_array. Las barras invertidas (\) al final de línea, las comillas simples y dobles, las cadenas $'…' y los escapes ^ del formato cmd de Windows se interpretan desde el propio comando; no hace falta limpiarlo. -u usuario:contraseña pasa a la autenticación, los campos -F a datos de formulario multipart, -G lleva los datos a la dirección, -k desactiva la verificación del certificado y -m fija un tiempo máximo. Las opciones que no cambian la solicitud, como -s, -v y -o, se omiten y se nombran en la nota. La conversión ocurre en su navegador; las contraseñas, cookies y tokens del comando no se envían a ningún servidor.

Esta herramienta también se busca como convertir curl a php, convertir curl a python, curl to php, curl to python, convertir curl a fetch, convertidor curl en linea, copiar como curl.

¿Qué es cURL?

cURL es un programa gratuito de línea de comandos que envía solicitudes a direcciones web; su nombre viene de «client URL». Viene instalado en Windows 10, macOS y Linux. La documentación de las API muestra sus ejemplos como comandos curl, porque una sola línea reúne la dirección, el método, los encabezados y los datos. La extensión cURL de PHP usa la misma biblioteca libcurl.

¿Qué es Encabezado HTTP?

Un encabezado HTTP es una línea nombre-valor que viaja junto al cuerpo de la solicitud: Content-Type indica el formato del cuerpo, Authorization las credenciales y Accept el tipo de respuesta esperado. En un comando curl cada encabezado se escribe -H "Nombre: valor". En el código pasa a ser un elemento de arreglo en PHP, una clave de diccionario en Python y una propiedad del objeto headers en fetch.

Tres cosas que curl hace sin decirlo: por qué el código tiene líneas de más

curl hace algunas cosas que el comando no escribe. Con -d cambia el método a POST y, si no hay encabezado Content-Type, agrega Content-Type: application/x-www-form-urlencoded. Python requests y fetch no lo hacen: requests envía el cuerpo de texto sin tipo y fetch lo marca como text/plain. El servidor puede leer la misma solicitud de otra forma, así que la herramienta escribe ese encabezado en el código, y la nota muestra cuántos encabezados hay para que la línea extra no lo sorprenda.

La segunda diferencia son las redirecciones. Sin -L, curl no sigue una respuesta 301 o 302; requests y fetch la siguen por defecto. Un comando copiado del navegador casi nunca trae -L, aunque el navegador sí siguió la redirección; por eso el código en Python y JavaScript no recibe ningún ajuste y el de PHP recibe CURLOPT_FOLLOWLOCATION solo cuando hay -L. La tercera es la lectura de archivos: -d @datos.txt elimina los saltos de línea del archivo y --data-binary @datos.txt los conserva; la herramienta lleva esa diferencia al código.

fetch en el navegador tiene otro límite: el propio navegador maneja encabezados como Cookie, Referer y User-Agent e ignora los valores puestos desde el código. El mismo código sí los envía en Node.js 18 o posterior. Si su comando incluye uno de ellos, la nota se lo advierte.

Qué lenguaje elegir y de dónde copiar el comando

Elija el lenguaje de su proyecto; las tres salidas envían la misma solicitud. La biblioteca requests de Python se instala con pip install requests; la salida PHP usa la extensión cURL de PHP, activa en la mayoría de los hostings; fetch no requiere instalación en el navegador ni a partir de Node.js 18.

Para repetir una solicitud que hace un sitio web, abra las herramientas para desarrolladores con F12 en Chrome, Edge o Firefox, haga clic derecho en la solicitud de la pestaña Red y elija «Copiar como cURL». En Windows aparecen dos opciones, «(bash)» y «(cmd)»; la herramienta lee ambas. El comando copiado contiene su cookie de sesión y su token de acceso: bórrelos antes de compartir el código.

  • Sitio PHP del lado del servidor o plugin de WordPress → PHP (cURL)
  • Script, extracción de datos o automatización → Python (requests)
  • Página web o aplicación Node.js → JavaScript (fetch)

Preguntas frecuentes

¿Cómo convierto un comando curl a Python?

Pegue el comando en el cuadro y elija Python. Los encabezados van al diccionario headers, el cuerpo a la variable data y las credenciales -u al parámetro auth; la solicitud se envía con requests.post o requests.get. Antes de ejecutar el código, instale la biblioteca con pip install requests.

¿Cómo convierto curl a PHP?

Elija PHP. El código usa curl_init y curl_setopt_array: la dirección queda en CURLOPT_URL, los encabezados en CURLOPT_HTTPHEADER y el cuerpo en CURLOPT_POSTFIELDS. Los archivos enviados con -F se convierten en new CURLFile(…).

¿Funciona un comando de «Copiar como cURL (cmd)»?

Sí. Los escapes ^" y los ^ al final de línea del formato cmd de Windows se interpretan y el comando se lee igual que en formato bash. «Copiar como PowerShell» genera Invoke-WebRequest, que no es curl; la herramienta no lo lee.

¿Se envían a algún lado las contraseñas y cookies de mi comando?

No. La conversión se hace por completo en su navegador; el comando y las contraseñas, cookies y tokens que contiene no llegan a ningún servidor. Si comparte el código resultante, quite usted mismo esos valores.

¿Qué significa la nota «opciones desconocidas»?

La herramienta traduce las opciones de curl que cambian la solicitud. Si encuentra una que no conoce, la omite y la nombra en la nota; agregue usted su equivalente en el código. Las opciones que solo cambian lo que curl muestra en pantalla (-s, -v, -o) también se omiten.