我提交表单的时候加了一句.SetRequestHeader "Accept-Encoding", "gzip, deflate"结果得到的数据是乱码,经了解过后得知返回的数据是经过压缩的,请问我要怎么才能对这个数据进行解压缩呢?

解决方案 »

  1.   

    下载一个zlib.dllPublic Declare Function uncompress Lib "zlib.dll" (dest As Any, destLen As Any, src As Any, ByVal srcLen As Long) As Long
    Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (lpvDest As Any, lpvSource As Any, ByVal cbCopy As Long)Public Function DecompressData(TheData() As Byte, OrigSize As Long) As Long
        Dim BufferSize As Long, TempBuffer() As Byte, Result As Long
        BufferSize = OrigSize
        BufferSize = BufferSize + (BufferSize * 0.01) + 12
        ReDim TempBuffer(BufferSize)
        Result = uncompress(TempBuffer(0), BufferSize, TheData(0), UBound(TheData) + 1)
        ReDim Preserve TheData(BufferSize - 1)
        CopyMemory TheData(0), TempBuffer(0), BufferSize
        Erase TempBuffer
        DecompressData = Result
    End Function