kirqe
I'm getting binary in body instead of a json string
Hi. I’m getting binary in json response body instead of a string. It’s probably because the response json is too big.
What can I do in this situation? Or is it a bug with httpoison?
Thanks
iex(17)> {:ok, %HTTPoison.Response{body: body, status_code: 200}} = HTTPoison.get "https://url"
{:ok,
%HTTPoison.Response{body: <<31, 139, 8, 0, 0, 0, 0, 0, 0, 3, 237, 125, 121,
111, 219, 88, 182, 231, 87, 81, 121, 254, 233, 6, 204, 72, 20, 181, 22, 30,
166, 224, 53, 222, 109, 121, 143, 31, 6, 198, 149, 68, 137, 52, 37, 94, 153,
164, ...>>,
headers: [{"Server", "nginx/1.11.4"},
{"Date", "Tue, 10 Oct 2017 23:35:36 GMT"},
{"Content-Type", "application/json; charset=utf-8"},
{"Transfer-Encoding", "chunked"}, {"Connection", "keep-alive"},
{"cache-control", "max-age=300"},
{"x-request-id", "7qcnn88qvaf12tuc2u88nkqoj5odk19v"},
{"Expires", "Tue, 10 Oct 2017 23:40:36 GMT"}, {"Content-Encoding", "gzip"},
{"Access-Control-Allow-Origin", "*"}],
request_url: "https://url",
status_code: 200}}
iex(18)> body
<<31, 139, 8, 0, 0, 0, 0, 0, 0, 3, 237, 125, 121, 111, 219, 88, 182, 231, 87,
81, 121, 254, 233, 6, 204, 72, 20, 181, 22, 30, 166, 224, 53, 222, 109, 121,
143, 31, 6, 198, 149, 68, 137, 52, 37, 94, 153, 164, 100, 83, ...>>
iex(19)> Poison.decode body
{:error, {:invalid, <<31>>, 0}}
iex(20)>
Most Liked
kirqe
It worked, thanks. I used :zlib.gunzip(body)
Then it’s decoded normally.
OvermindDL1
Your body is not a string, do you see those 0’s in there? Those are invalid string characters, thus it is not JSON that you got but rather some kind of binary blob, there is nothing httpoison could do in this case.
And please please please use markdown, don’t put code in pictures. ^.^;
OvermindDL1
Ah cool, you’ve posted markdown. ![]()
Well ithe header says the content is gzip encoded, I’m unsure if httpoison auto-decodes that for you, but if not then just gzip decode it first and ‘then’ pipe it in to httpoison I’d bet? ![]()
Popular in Questions
Other popular topics
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #channels
- #elixirconf
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #phoenix_html
- #iex
- #blog-post
- #graphql
- #genstage
- #ai
- #websockets
- #supervisor
- #advent-of-code
- #elixirconf-us
- #distillery
- #processes
- #forms
- #api
- #metaprogramming
- #security
- #performance








