¿Es posible instruir a cURL para suprimir la salida del cuerpo de respuesta?
En mi caso, el cuerpo de la respuesta es una página HTML, que desborda el búfer CLI, lo que dificulta encontrar la información relevante. Quiero examinar las otras partes de la salida, como el código de respuesta HTTP, los encabezados, etc., todo excepto el HTML real.

-s -o nulpero en mi máquina de Windows salecurl -s -o nul -v http://{internal-host}/{internal-uri}todo el html de la página; lo intentécurl -s -o nul -v http://google.comy suprime la salida como se esperaba, así que no entiendo por qué esto no funciona para mi sitio interno-osolo especifica una salida de URL: si tiene varias URL, solo descartará la primera :(NULy/dev/null. Usar-sIXGETes una mejor opción en mi opinión.Esta es una forma de suprimir todos los encabezados y la salida curl, con la opción de seguir mostrando errores si ocurren. Útil para trabajos cron o pruebas automatizadas.
Unix
Para suprimir toda la salida:
Para suprimir la salida pero aún mostrar errores si ocurren:
Ventanas
Para suprimir toda la salida:
Para suprimir la salida pero aún mostrar errores si ocurren:
Parámetros explicados
--silentsuprime las estadísticas de descarga en curso (pero seguirá mostrando la salida HTML)--output /dev/nulloculta la salida correcta--show-errormuestra errores, incluso cuando elsilentmodo está habilitado--failgenerará un error si la respuesta HTTP es un código de error (404, 500, etc.) en lugar de simplemente DNS / Errores de TCP.ACTUALIZACIÓN: Me doy cuenta de que el autor original quería inspeccionar los encabezados y el código de respuesta de una solicitud en lugar de silenciar todo . Consulte la respuesta de samael para obtener detalles sobre cómo hacer eso.
fuente
NULy/dev/null. Usar-sIXGETes una mejor opción en mi opinión.curl -vo/dev/null/curl -voNUL… y no sé si hay una variante portátil de eso, hrm… ;-).curl -Ssfo /dev/null url. Pero sea amable con los futuros mantenedores.Cuando desee mostrar encabezados pero ocultar el cuerpo de la respuesta, querrá usar:
Lo había estado usando
curl -I http://somedomain.com/your/urlsolo para mostrar encabezados de respuesta. Sin embargo, el problema con eso es que realiza la solicitud utilizando elHEADmétodo, lo cual no es bueno cuando desea probar una llamada API que solo responde a unaGETsolicitud. Para esto es-X GET, cambia la solicitud aGET.Entonces, en resumen:
-soculta las barras de progreso de la salida (especialmente útil cuando se conecta a otro programa)-Imuestra los encabezados (pero hace unaHEADsolicitud)-XGETconvierte la solicitud de nuevo en unaGETsolicitudver: http://www.woolie.co.uk/article/curl-full-get-request-dropping-body/
fuente
curl -ihace exactamente lo mismo.-iincluye el encabezado HTTP en la salida y en el cuerpo. Intentalo.curl -i http://google.comno es lo mismo quecurl -IXGET http://google.comcurl -I urles suficiente y tiene el mismo efecto. Solo necesitaba verificar si la URL respondía. Esta pregunta también trataba simplemente de suprimir el cuerpo, lo queHEADhace bien.