gpt4 book ai didi

Elixir - 将 gzip 压缩和 base64 编码的 API 响应转换为字符串

转载 作者:行者123 更新时间:2023-12-03 09:01:11 24 4
gpt4 key购买 nike

我必须创建一个 SignalR 客户端,因为我想尝试 Bittrex websockets API,一切都很顺利,直到我收到他们在 docs 中声明的 API 响应(订阅数据、简单调用等...)。 :

All responses are compressed by the server using GZip (via a ‘deflate’ API - there are no headers) and base64 encoded prior to transmission. Users must reverse this process to retrieve the JSON payload.

我尝试使用 :zlib.(gunzip, gzip, uncompress) 只是为了它,但它们总是返回错误,显然是在使用 Base.decode64( 解码后) )。示例:

string = "jZC7DsIwDEX/xXOIEjuJ44w8tgKChgFQV36i6r+TvpAqQOAlUnR87OsW9pDgUm/zap03oOAAydrggoIbpHsL+Vo+FJwhiWWvnYyl4ATJaNOpEcEJCVGbqSYEQ4jMxDM5y5C18QvyJTMDEp2QtoiLeUguipcPpCEyTEIzGZiILXWNgrokKc9jCHTMJXC9qyr4srLVxJFLexlaWOvRcbSOXWTq5/4UDGsiY3/EvwQf7ipMTnrfm6Dpng=="

string |> Base.decode64!() |> :zlib.gunzip()

# This returns a :data_error from `:zlib`

Base.decode64!(string)

<<141, 144, 187, 14, 194, 48, 12, 69, 255, 197, 115, 136, 18, 59, 137, 227, 140,
60, 182, 2, 130, 134, 1, 80, 87, 126, 162, 234, 191, 147, 190, 144, 42, 64,
224, 37, 82, 116, 124, 236, 235, 22, 246, 144, 224, 82, 111, 243, 106, 157,
...>>
另一方面,它已使用 Base 成功解码,并且我得到了一个二进制文件,我不确定如何将其转换为字符串,但由于文档声明它已被压缩,并且我认为有必要解压缩该二进制文件数据。我尝试使用其他方法将二进制文件转换为字符串,但没有结果。

最佳答案

我尝试了输入,:zlib.unzip/1 有效。

关于Elixir - 将 gzip 压缩和 base64 编码的 API 响应转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50053903/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com