๋ค์๊ณผ ๊ฐ์ bash ์ฝ์์์ ํ์์ ์ง์ ํ๊ธฐ ์ํด JSON ์ถ๋ ฅ ๋ณธ๋ฌธ์ ์์๊ฒ ์ธ์ํ๋ ๋ฐฉ๋ฒ
macbookproloreto:~ admin$ echo '{"foo": "lorem", "bar": "ipsum"}' | python -m json.tool
{
"bar": "ipsum",
"foo": "lorem"
}
๋ด ๋ช ๋ น์ ์ง๊ธ์ฒ๋ผ ๋ณด์ ๋๋ค.
http --session=cookies.txt --pretty all --json --print=b --style=xcode "https://myapi.company.com | python -m json.tool
--pretty
์ต์
์ ์ถ๋ ฅ ๋ณธ๋ฌธ์ ์์๊ฒ ์ธ์ํ๋ ๊ฒ์ ๋ชฉํ๋ก ํฉ๋๊น? ์ถ๋ ฅ ๋ณธ๋ฌธ์ ์์๊ฒ ๊พธ๋ฏธ์ง ์๋ ๊ฒ์ฒ๋ผ ๋ณด์ด๋ ๋์ json์ ์ผ๋ฐ ํ
์คํธ๋ก ์ธ์ํฉ๋๋ค.
'{"foo": "lorem", "bar": "ipsum"}'
์ด๊ฒ์ ๊ธฐ๋ณธ์ ์ผ๋ก ์๋ํฉ๋๋ค.
@jkbrzt ์, ํ์ง๋ง ์ด๊ฒ์ body
์๋ต์ด ์๋๋๋ค. ๋ชธ์ด ์์์ง ์๊ณ headers
๋ง ์์ ๊ฒ ๊ฐ์ต๋๋ค.
@loretoparisi ์ด๊ฒ์ ์๋ต ๋ณธ๋ฌธ์ ๋๋ค. http://httpbin.org/get์ ์ฐธ์กฐํ์ญ์์ค
์๊ฒ ์ต๋๋ค. ๋ฌธ์ ๋ฅผ ์ฐพ์์ต๋๋ค. ์๋ต ํค๋์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ์ค์ ๋ก ๋ค์๊ณผ ๊ฐ์ json ํ์์ผ๋ก ์ ํ์ํ๋ ์๋ต ๋ณธ๋ฌธ์ ์๋ํ๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
http --session=cookies.txt --pretty all --json --print=b --style=xcode "https://api.spotify.com/v1/tracks/0eGsygTp906u18L0Oimnem"
ํจ๊ณผ๊ฐ์๋ค.
http ์๋ต ํค๋๊ฐ text/plain
HTTP/1.1 200 OK
Connection: keep-alive
Content-Encoding: gzip
Content-Length: 1996
Content-Type: text/plain; charset=utf-8
๊ฒฐ๊ณผ ํ์์ ๋จ์ํฉ๋๋ค.
HTTPie๋ ์๋ต Content-Type
ํค๋๋ฅผ ํ์ธํฉ๋๋ค. text/plain
์ด๋ฉด ํน๋ณํ ์์์ ์ง์ ํ์ง ์์ต๋๋ค. ์ ๊ณตํ URL์ Content-Type: application/json; charset=utf-8
๋ฐํํ๋ฏ๋ก ์ฌ๋ฐ๋ฅธ ํ์์ด ์ง์ ๋๊ณ JSON์ผ๋ก ๊ฐ์กฐํ์๋ฉ๋๋ค.
@jkbrzt ์ ํํ. ์ฌ์ค ๋ฌธ์ ๋ ์๋ฒ ํค๋๊ฐ text/plain
๋ฐ๋ฉด ๋ณธ๋ฌธ์ json ๋ณธ๋ฌธ(์ ํํ๋ json)์ผ๋ก ํ์์ด ์ง์ ๋ ํ
์คํธ๋ผ๋ ๊ฒ์ด์์ต๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ์๋ต ํค๋ Content-Type
๋ application/json
๊ฐ ์๋๋๋ค. ์ด๋ฌํ ๊ฒฝ์ฐ HTTPie
json ํ์์ ๊ฐ์ ํ ์ ์์ต๋๊น?
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
@jkbrzt ์ ํํ. ์ฌ์ค ๋ฌธ์ ๋ ์๋ฒ ํค๋๊ฐ
text/plain
๋ฐ๋ฉด ๋ณธ๋ฌธ์ json ๋ณธ๋ฌธ(์ ํํ๋ json)์ผ๋ก ํ์์ด ์ง์ ๋ ํ ์คํธ๋ผ๋ ๊ฒ์ด์์ต๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ์๋ต ํค๋Content-Type
๋application/json
๊ฐ ์๋๋๋ค. ์ด๋ฌํ ๊ฒฝ์ฐHTTPie
json ํ์์ ๊ฐ์ ํ ์ ์์ต๋๊น?