Cara mencetak badan keluaran JSON dengan cantik untuk memformatnya di konsol bash seperti
macbookproloreto:~ admin$ echo '{"foo": "lorem", "bar": "ipsum"}' | python -m json.tool
{
"bar": "ipsum",
"foo": "lorem"
}
Perintah saya terlihat seperti sekarang
http --session=cookies.txt --pretty all --json --print=b --style=xcode "https://myapi.company.com | python -m json.tool
Apakah opsi --pretty
bertujuan untuk mencetak badan keluaran dengan cantik? Tampaknya tidak mempercantik badan keluaran, alih-alih mencetak json sebagai teks biasa
'{"foo": "lorem", "bar": "ipsum"}'
Ini bekerja di luar kotak:
@jkbrzt ya tapi ini bukan respon body
. Tampaknya tidak cantik di tubuh tetapi hanya headers
.
@loretoparisi itu adalah badan tanggapan, lihat http://httpbin.org/get
Oke saya telah menemukan masalahnya, ada yang salah di header respons. Sebenarnya jika saya mencoba badan respons yang diformat dengan baik dengan format json seperti:
http --session=cookies.txt --pretty all --json --print=b --style=xcode "https://api.spotify.com/v1/tracks/0eGsygTp906u18L0Oimnem"
berhasil.
Ketika header respons http adalah text/plain
HTTP/1.1 200 OK
Connection: keep-alive
Content-Encoding: gzip
Content-Length: 1996
Content-Type: text/plain; charset=utf-8
format yang dihasilkan polos.
HTTPie melihat respons Content-Type
header. Jika text/plain
, maka itu tidak melakukan pemformatan khusus. URL yang Anda berikan mengembalikan Content-Type: application/json; charset=utf-8
sehingga diformat dan disorot dengan benar sebagai JSON.
@jkbrzt tepatnya. Sebenarnya masalahnya adalah bahwa tajuk server adalah text/plain
sedangkan badan adalah teks yang diformat sebagai badan json (json yang diformat dengan baik). Pada dasarnya tajuk respons Content-Type
bukan application/json
. Bisakah HTTPie
memaksa pemformatan json dalam kasus tersebut?
Komentar yang paling membantu
@jkbrzt tepatnya. Sebenarnya masalahnya adalah bahwa tajuk server adalah
text/plain
sedangkan badan adalah teks yang diformat sebagai badan json (json yang diformat dengan baik). Pada dasarnya tajuk responsContent-Type
bukanapplication/json
. BisakahHTTPie
memaksa pemformatan json dalam kasus tersebut?