Dio如何处理 content-encodeing: deflate的文件

https://api.bilibili.com/x/v1/dm/list.so?oid=31202796
这是B站的弹幕接口 浏览器可以直接访问 但是通过dio请求 回来是乱码 如下:

(|Y[sT�r�+�yJ��,V�Zݽ�J��T*/'ϩ�&�;��<�$K�FH����8�}P@�b��3{�艿��͈=�j��ٳ�v_��zi�>��'_...)

看了下 headers里的content-encodeing 是deflate
不知要怎么处理才能显示正常的字符串…

content-encodeing: deflate 是指对返回内容进行了deflate编码压缩,需要使用zlib解码,而且B站这个还是原始的deflate编码,我用下面的代码试过是可以的:

var decoder = ZLibCodec(raw: true);
var response = await dio
    .get('https://api.bilibili.com/x/v1/dm/list.so?oid=31202796',
        options: Options(responseDecoder: (list, options, body) {
  var codes = decoder.decode(list);
  return Utf8Codec().decode(codes);
}));
print(response);