• 请不要在回答技术问题时复制粘贴 AI 生成的内容
satanwoo
V2EX  ›  程序员

抓到的 HTTP Response 是一串字符串,看到的 content-encoding:gzip,反解码不成功是啥原因?

  •  
  •   satanwoo · Jul 25, 2014 · 5654 views
    This topic created in 4488 days ago, the information mentioned may be changed or developed.
    昨天抓包,看到reponse是一串字符串,然后查了下header 里面包含了gzip encoding,但是用了一些gzip decompress tool怎么解析失败,是啥原因。

    失败的原因不是说解析出来看不懂,而是直接报了invalid,请问各位大大这是啥原因。
    18 replies  •  2014-07-30 12:05:18 +08:00
    aidevs
    aidevs
    Jul 26, 2014 via iPhone
    1
    satanwoo
    satanwoo
    OP
    Jul 26, 2014
    2
    @dbfox Charles这个抓包软件输出的reponse应该是最后完整收到的。所以应该还是得到把所有块当成字符串流全部拼在一起后的效果吧?这样的话好像不应有影响呀~
    cj1324
    cj1324
    Jul 26, 2014 via Android
    3
    也有可能收到数据太多了。 需要截断。
    satanwoo
    satanwoo
    OP
    Jul 26, 2014
    4
    @cj1324 单独一个API查询返回的repsonse也需要截断吗?
    julyclyde
    julyclyde
    Jul 26, 2014
    5
    @satanwoo 服务器那边想怎么输出都可以,只要符合标准。至于你说的“单独一个API”那是更上层的事情了,和协议无关
    satanwoo
    satanwoo
    OP
    Jul 26, 2014
    6
    @julyclyde 我的意思,我抓的数据显示相当于一次完整传输的最终结果~就类似于服务器断断续续传,我在这边最终收集好了显示出来,这就是服务器通过这是传输发给我的所有东西吧,对不?那我现在想反解码这个完整的数据为啥不行呀~
    iannil
    iannil
    Jul 27, 2014
    7
    应该是使用了gzip压缩,返回的response需要解压一下。
    satanwoo
    satanwoo
    OP
    Jul 27, 2014
    8
    @iannil 我就是用了gzip工具包反解压不成功嘛~
    iannil
    iannil
    Jul 27, 2014
    9
    @satanwoo 什么语言?什么方法解压的?
    satanwoo
    satanwoo
    OP
    Jul 27, 2014
    10
    @iannil 在线工具包之类的呀~
    msg7086
    msg7086
    Jul 27, 2014
    11
    @satanwoo 我猜测你用的在线工具可能只吃gzip文件而不吃gzip流。
    satanwoo
    satanwoo
    OP
    Jul 27, 2014
    12
    @msg7086 他支持direct input哎~
    iannil
    iannil
    Jul 27, 2014
    13
    @satanwoo 别用在线工具包,最好用标准化的工具来进行解压
    julyclyde
    julyclyde
    Jul 28, 2014
    14
    @satanwoo 你先看一下HTTP响应里是不是写了Transfer-encoding:trunked这样的
    satanwoo
    satanwoo
    OP
    Jul 28, 2014
    15
    @julyclyde 是的~
    julyclyde
    julyclyde
    Jul 29, 2014
    16
    @satanwoo trunked每段开头有一行16进制数字,表示后面的内容的字节数。然后从下一行开始是内容。每段分别解压缩应该可以
    satanwoo
    satanwoo
    OP
    Jul 29, 2014
    17
    @julyclyde 恩,你的回复我了解哈~但是我不是直接侦听网络数据块,我是用的charles,这个软件可以直接按照正确的方式~拼接收到的这种trunk的数据,所以我也不太理解。
    julyclyde
    julyclyde
    Jul 30, 2014
    18
    @satanwoo 如果真的正确拼接了自然是能解压缩的
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1515 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 15:36 · PVG 23:36 · LAX 07:36 · JFK 10:36
    ♥ Do have faith in what you're doing.