Httpie: Bonito cuerpo JSON de impresión

Creado en 13 nov. 2015  ·  6Comentarios  ·  Fuente: httpie/httpie

Cómo imprimir bastante un cuerpo de salida JSON para formatearlo en la consola bash como

macbookproloreto:~ admin$ echo '{"foo": "lorem", "bar": "ipsum"}' | python -m json.tool
{
    "bar": "ipsum",
    "foo": "lorem"
}

Mi comando parece ahora

http --session=cookies.txt --pretty all --json --print=b --style=xcode "https://myapi.company.com | python -m json.tool

¿La opción --pretty tiene como objetivo imprimir bastante el cuerpo de salida? Parece que no embellece el cuerpo de salida, sino que imprime el json como texto sin formato

'{"foo": "lorem", "bar": "ipsum"}'

Comentario más útil

@jkbrzt exactamente. De hecho, el problema era que los encabezados del servidor eran text/plain mientras que el cuerpo era un texto formateado como un cuerpo json (json bien formateado). Básicamente, el encabezado de respuesta Content-Type no es application/json . ¿Puede HTTPie forzar el formato json en esos casos?

Todos 6 comentarios

Esto funciona fuera de la caja:

screen shot 2016-01-01 at 6 58 34 pm

@jkbrzt sí, pero esta no es la respuesta body . Parece que no embellece el cuerpo sino solo el headers .

@loretoparisi es el cuerpo de respuesta, consulte http://httpbin.org/get

Ok, he encontrado el problema, hay algo mal en los encabezados de respuesta. De hecho, si pruebo un cuerpo de respuesta bien formateado con formato json como:

http --session=cookies.txt --pretty all --json --print=b --style=xcode "https://api.spotify.com/v1/tracks/0eGsygTp906u18L0Oimnem"

funciona.
Cuando los encabezados de respuesta http son text/plain

HTTP/1.1 200 OK
Connection: keep-alive
Content-Encoding: gzip
Content-Length: 1996
Content-Type: text/plain; charset=utf-8

el formato resultante es simple.

HTTPie mira el encabezado de respuesta Content-Type . Si es text/plain , entonces no tiene ningún formato especial. La URL que proporcionó devuelve Content-Type: application/json; charset=utf-8 para que se formatee correctamente y se resalte como JSON.

screen shot 2016-01-03 at 6 58 33 pm

@jkbrzt exactamente. De hecho, el problema era que los encabezados del servidor eran text/plain mientras que el cuerpo era un texto formateado como un cuerpo json (json bien formateado). Básicamente, el encabezado de respuesta Content-Type no es application/json . ¿Puede HTTPie forzar el formato json en esos casos?

¿Fue útil esta página
0 / 5 - 0 calificaciones