Dígame, ¿cuál es la principal diferencia entre las opciones CURLOPT_MIMEPOST y CURLOPT_POSTFIELDS?
¿Qué se puede hacer con un CURLOPT_MIMEPOST, que no se puede hacer con CURLOPT_POSTFIELDS?
Envía exactamente los bytes que especificas en el cuerpo de la solicitud HTTP. Con un tipo de contenido predeterminado de application/x-www-form-urlencoded
. libcurl no agregará ni codificará los datos de ninguna manera para usted.
Con la herramienta de línea de comando curl, haces esto con -d
.
Hace que libcurl envíe un "post de formulario de varias partes". Ese es un flujo de datos que utiliza un formato que permite al remitente enviar múltiples "partes" de datos al servidor, cada una de las cuales se separa e identifica correctamente. Cada parte tiene un nombre, contenido y su propio conjunto de encabezados. Cuando un cliente HTTP "carga un archivo", esto casi siempre se hace mediante formularios de varias partes.
El formpost de varias partes son datos estructurados en el cuerpo de la solicitud y esta opción lo ayuda a producir y enviar ese formato. Una aplicación también puede producir ese formato por sí misma si lo prefiere y proporcionarlo con CURLOPT_POSTFIELDS
o incluso usando la devolución de llamada CURLOPT_READFUNCTION
.
Con la herramienta de línea de comando curl, haces esto con -F
.