{"id":390,"date":"2026-06-23T21:29:43","date_gmt":"2026-06-23T21:29:43","guid":{"rendered":"https:\/\/wordpress-foccwcs4gooocs44ogwkggo0.thunderproxy.com\/?p=390"},"modified":"2026-06-23T21:29:43","modified_gmt":"2026-06-23T21:29:43","slug":"como-usar-curl-para-enviar-solicitudes-post","status":"publish","type":"post","link":"https:\/\/wordpress-foccwcs4gooocs44ogwkggo0.thunderproxy.com\/index.php\/es\/2026\/06\/23\/como-usar-curl-para-enviar-solicitudes-post\/","title":{"rendered":"C\u00f3mo usar cURL para enviar solicitudes POST"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Si eres desarrollador y trabajas con APIs, aprender a enviar solicitudes POST con cURL es obligatorio. Es una de las formas m?s sencillas de probar endpoints, subir datos o interactuar con servidores, todo desde tu terminal.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En este post te mostraremos c?mo enviar solicitudes POST con cURL y c?mo enviar JSON, XML, archivos y datos de formularios.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Paso 1: ?Est? instalado cURL?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">La mayor?a de los sistemas ya tienen cURL. Para comprobar si el tuyo tambi?n, abre una terminal y ejecuta el siguiente comando:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>curl --version<br><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">If it\u2019s not installed, download it from&nbsp;<a class=\"\" href=\"https:\/\/curl.se\/\">curl.se<\/a>. Windows users may need Git Bash or WSL to get the best results.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Paso 2: Una solicitud POST sencilla<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Aqu? tienes un ejemplo b?sico de una solicitud POST con cURL:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>curl -X POST -d \"Hello\" https:\/\/example.com\/api<br><\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>-X POST<\/code>&nbsp;= m?todo HTTP<\/li>\n\n\n\n<li><code>-d<\/code>&nbsp;= datos que env?as en el cuerpo<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Paso 3: A?ade encabezados Content-Type<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Para informar al servidor qu? tipo de datos est?s enviando, aseg?rate de incluir un encabezado&nbsp;<code>Content-Type<\/code>:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Para texto plano:<\/h3>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>curl -X POST -H \"Content-Type: text\/plain\" -d \"Hello\" https:\/\/example.com\/api<br><\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Para JSON:<\/h3>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>curl -X POST -H \"Content-Type: application\/json\" \\<br>  -d '{\"name\":\"Alice\",\"age\":30}' https:\/\/example.com\/api<br><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Usa comillas simples para envolver el JSON y evitar que la terminal se confunda con las comillas dobles internas.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Paso 4: Env?a cargas XML<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Si la API espera XML:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>curl -X POST -H \"Content-Type: application\/xml\" \\<br>  -d '&lt;?xml version=\"1.0\"?&gt;&lt;user&gt;&lt;name&gt;Alice&lt;\/name&gt;&lt;\/user&gt;' \\<br>  https:\/\/example.com\/api<br><\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Paso 5: Sube archivos con&nbsp;<code>-F<\/code><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Para subir archivos (como im?genes, documentos o logs):<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>curl -X POST -F \"file=@\/path\/to\/file.jpg\" https:\/\/example.com\/upload<br><\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Subir varios archivos:<\/h3>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>curl -X POST \\<br>  -F \"image1=@\/path\/to\/one.jpg\" \\<br>  -F \"image2=@\/path\/to\/two.jpg\" \\<br>  https:\/\/example.com\/upload<br><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">cURL gestiona autom?ticamente&nbsp;<code>multipart\/form-data<\/code>&nbsp;por ti.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Paso 6: Env?a datos de formulario<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Para env?os cl?sicos de formularios (como iniciar sesi?n o enviar un formulario de contacto):<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>curl -X POST -d \"username=test&amp;password=1234\" https:\/\/example.com\/login<br><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Tambi?n puedes enviar varios campos de formulario repitiendo el flag&nbsp;<code>-d<\/code>&nbsp;o combinarlos en una sola cadena.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Paso 7: A?ade autenticaci?n b?sica<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Si el endpoint requiere credenciales de acceso, usa&nbsp;<code>-u<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>curl -u username:password https:\/\/example.com\/secure<br><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Esto a?ade autom?ticamente un encabezado&nbsp;<code>Authorisation<\/code>&nbsp;usando codificaci?n Base64.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Usar cURL con proxies residenciales<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Si est?s probando endpoints geolocalizados o quieres privacidad extra, puedes usar cURL con un proxy as?:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>curl -x http:\/\/proxyuser:proxypass@gw.thunderproxy.net:5959 \\<br>  -X POST -d '{\"action\":\"test\"}' https:\/\/example.com\/api<br><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">At\u00a0<a href=\"https:\/\/thunderproxy.com\/\" class=\"\">Thunderproxy.com<\/a>, we provide <a href=\"https:\/\/www.thunderproxy.com\/es\/products\/proxies\/residential-proxies\/\">residential proxies<\/a> that work perfect with cURL. This is helpful when testing websites from different locations or when you need to bypass rate limits.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Reflexiones finales<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">cURL is a tool for developers, system administrators and testers. It\u2019s fast and efficient &#8211; whether you are sending JSON, uploading files, or logging into protected endpoints.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Once you learn the basic flags (<code>-X<\/code>,&nbsp;<code>-d<\/code>,&nbsp;<code>-H<\/code>,&nbsp;<code>-F<\/code>,&nbsp;<code>-u<\/code>), you\u2019ll be comfortable to create any kind of HTTP request in seconds.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Si trabajas con APIs, saber c?mo enviar solicitudes POST con cURL es importante. Aprende a enviar JSON, XML, datos de formularios y archivos.<\/p>\n","protected":false},"author":1,"featured_media":79,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"meta_title":"","meta_description":"","plan_title":"","referenced_products":[],"footnotes":""},"categories":[23],"tags":[50],"class_list":["post-390","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized-es","tag-tutorials"],"tag_slugs":["tutorials"],"meta_title":"","meta_description":"","referenced_products":[],"plan_title":"","headings":[{"level":2,"text":"Paso 1: ?Est? instalado cURL?","id":"paso-1-est-instalado-curl","slug":"paso-1-est-instalado-curl"},{"level":2,"text":"Paso 2: Una solicitud POST sencilla","id":"paso-2-una-solicitud-post-sencilla","slug":"paso-2-una-solicitud-post-sencilla"},{"level":2,"text":"Paso 3: A?ade encabezados Content-Type","id":"paso-3-aade-encabezados-content-type","slug":"paso-3-aade-encabezados-content-type"},{"level":3,"text":"Para texto plano:","id":"para-texto-plano","slug":"para-texto-plano"},{"level":3,"text":"Para JSON:","id":"para-json","slug":"para-json"},{"level":2,"text":"Paso 4: Env?a cargas XML","id":"paso-4-enva-cargas-xml","slug":"paso-4-enva-cargas-xml"},{"level":2,"text":"Paso 5: Sube archivos con&nbsp;-F","id":"paso-5-sube-archivos-con-f","slug":"paso-5-sube-archivos-con-f"},{"level":3,"text":"Subir varios archivos:","id":"subir-varios-archivos","slug":"subir-varios-archivos"},{"level":2,"text":"Paso 6: Env?a datos de formulario","id":"paso-6-enva-datos-de-formulario","slug":"paso-6-enva-datos-de-formulario"},{"level":2,"text":"Paso 7: A?ade autenticaci?n b?sica","id":"paso-7-aade-autenticacin-bsica","slug":"paso-7-aade-autenticacin-bsica"},{"level":2,"text":"Usar cURL con proxies residenciales","id":"usar-curl-con-proxies-residenciales","slug":"usar-curl-con-proxies-residenciales"},{"level":2,"text":"Reflexiones finales","id":"reflexiones-finales","slug":"reflexiones-finales"}],"lang":"es","translations":{"es":390,"ru":387,"en":74,"tr":388,"de":389},"pll_sync_post":[],"featured_media_src_url":"https:\/\/wordpress-foccwcs4gooocs44ogwkggo0.thunderproxy.com\/wp-content\/uploads\/2025\/07\/pexels-fotios-photos-16129724-1024x768.jpg","_links":{"self":[{"href":"https:\/\/wordpress-foccwcs4gooocs44ogwkggo0.thunderproxy.com\/index.php\/wp-json\/wp\/v2\/posts\/390","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress-foccwcs4gooocs44ogwkggo0.thunderproxy.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress-foccwcs4gooocs44ogwkggo0.thunderproxy.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress-foccwcs4gooocs44ogwkggo0.thunderproxy.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress-foccwcs4gooocs44ogwkggo0.thunderproxy.com\/index.php\/wp-json\/wp\/v2\/comments?post=390"}],"version-history":[{"count":1,"href":"https:\/\/wordpress-foccwcs4gooocs44ogwkggo0.thunderproxy.com\/index.php\/wp-json\/wp\/v2\/posts\/390\/revisions"}],"predecessor-version":[{"id":401,"href":"https:\/\/wordpress-foccwcs4gooocs44ogwkggo0.thunderproxy.com\/index.php\/wp-json\/wp\/v2\/posts\/390\/revisions\/401"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress-foccwcs4gooocs44ogwkggo0.thunderproxy.com\/index.php\/wp-json\/wp\/v2\/media\/79"}],"wp:attachment":[{"href":"https:\/\/wordpress-foccwcs4gooocs44ogwkggo0.thunderproxy.com\/index.php\/wp-json\/wp\/v2\/media?parent=390"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress-foccwcs4gooocs44ogwkggo0.thunderproxy.com\/index.php\/wp-json\/wp\/v2\/categories?post=390"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress-foccwcs4gooocs44ogwkggo0.thunderproxy.com\/index.php\/wp-json\/wp\/v2\/tags?post=390"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}