Httpie: Corpo JSON de impressão bonita

Criado em 13 nov. 2015  ·  6Comentários  ·  Fonte: httpie/httpie

Como imprimir um corpo de saída JSON para formatá-lo no console bash como

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

Meu comando parece agora

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

A opção --pretty tem

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

Comentários muito úteis

@jkbrzt exatamente. Na verdade, o problema era que os cabeçalhos do servidor eram text/plain enquanto o corpo era um texto formatado como um corpo json (json bem formatado). Basicamente, o cabeçalho de resposta Content-Type não é application/json . HTTPie forçar a formatação do json nesses casos?

Todos 6 comentários

Isso funciona fora da caixa:

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

@jkbrzt sim, mas esta não é a resposta body . Parece que não embeleza o corpo mas apenas o headers .

@loretoparisi é o corpo da resposta, veja http://httpbin.org/get

Ok, encontrei o problema, há algo errado nos cabeçalhos de resposta. Na verdade, se eu tentar um corpo de resposta bem formatado com formato json como:

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

funciona.
Quando os cabeçalhos de resposta http são text/plain

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

a formatação resultante é simples.

HTTPie olha para o cabeçalho de resposta Content-Type . Se for text/plain , não fará nenhuma formatação especial. O URL que você forneceu retorna Content-Type: application/json; charset=utf-8 para que seja formatado corretamente e destacado como JSON.

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

@jkbrzt exatamente. Na verdade, o problema era que os cabeçalhos do servidor eram text/plain enquanto o corpo era um texto formatado como um corpo json (json bem formatado). Basicamente, o cabeçalho de resposta Content-Type não é application/json . HTTPie forçar a formatação do json nesses casos?

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

a-x- picture a-x-  ·  7Comentários

eliangcs picture eliangcs  ·  5Comentários

tonsV2 picture tonsV2  ·  4Comentários

filipesperandio picture filipesperandio  ·  3Comentários

Govinda-Fichtner picture Govinda-Fichtner  ·  6Comentários