from examples example data json bash curl

examples - json bash jq



cómo hacer que curl solo entregue el cuerpo de respuesta http(json) y no otros encabezados, etc. (1)

Está especificando la opción -i :

-i , --include

(HTTP) Incluye el encabezado HTTP en la salida . El encabezado HTTP incluye cosas como el nombre del servidor, la fecha del documento, la versión HTTP y más ...

Simplemente elimine esa opción de su línea de comando:

response=$(curl -sb -H "Accept: application/json" "http://host:8080/some/resource")

Estoy usando curl en un script bash para buscar la respuesta de un servicio como a continuación,

response=$(curl -isb -H "Accept: application/json" "http://host:8080/some/resource")

La respuesta de servicio es de tipo json y en el navegador podría responder perfectamente bien.
Sin embargo, la respuesta curl tiene otras cosas no deseadas (como set-cookie, encabezado de longitud de contenido en este caso) y, a veces, la respuesta real se consume.

Aquí está la salida de echo $response >

Set-Cookie: rack.session=BAh7CEkiD3Nlc3Npb25faWQGOgZFVEkiRWJlY2JiOTE2M2Q1ZWI4NThjMDdi%0AYjRiOWRjMGMxMGEwYTBkMjE3NmJhZDVjYzY4YjY4ZTlmMTE2ZGVkYWE3MTMG%0AOwBGS SIJY3NyZgY7AEZJIiVhZmQ2MmUyZGMxMzFmOGEwMjg3NDlhNWM3YmVm%0AN2FjNwY7AEZJIg10cmFja2luZwY7AEZ7B0kiFEhUVFBfVVNFUl9BR0VOVAY7%0AAFRJIi00MTc0OGM2MWNkMzljZTYxNzY3ZjU0 Y2I5OTdiYWRkN2MyNTBkYmU4%0ABjsARkkiGUhUVFBfQUNDRVBUX0xBTkdVQUdFBjsAVEkiLWRhMzlhM2VlNWU2%0AYjRiMGQzMjU1YmZlZjk1NjAxODkwYWZkODA3MDkGOwBG%0A--ee97a62095e7d42129 tontent-Length: 354c8; path=/; HttpOnly

Esto está rompiendo mi lógica de análisis de respuesta.
He visto esto sucediendo intermitentemente, lo cual es extraño.

¿Hay alguna manera de obtener "solo" respuesta json de la salida curl?
Revisé la documentación de curl pero no pude ver nada / o podría haberla perdido.
Apreciar cualquier ayuda! Gracias