Esta es la respuesta más válida que te podemos compartir, pero estúdiala detenidamente y valora si se adapta a tu proyecto.
Solución:
-H "text/xml"
no es un encabezado válido. Debe proporcionar el encabezado completo:
-H "Content-Type: text/xml"
Prefiero las siguientes opciones de línea de comandos:
cat req.xml | curl -X POST -H 'Content-type: text/xml' -d @- http://www.example.com
o
curl -X POST -H 'Content-type: text/xml' -d @req.xml http://www.example.com
o
curl -X POST -H 'Content-type: text/xml' -d 'data ' http://www.example.com
Es más sencillo usar un archivo (req.xml
en mi caso) con el contenido que desea enviar, como este:
curl -H "Content-Type: text/xml" -d @req.xml -X POST http://localhost/asdf
También debería considerar usar el tipo ‘aplicación/xml’ (las diferencias se explican aquí)
Alternativamente, sin necesidad de hacer que curl realmente lea el archivo, puede usar cat
para escupir el archivo en la salida estándar y hacer curl
para leer desde stdout así:
cat req.xml | curl -H "Content-Type: text/xml" -d @- -X POST http://localhost/asdf
Ambos ejemplos deberían producir una salida de servicio idéntica.
Puedes añadir valor a nuestra información asistiendo con tu experiencia en las reseñas.