1

我做了一个简单的代理服务器。工作正常,但不是 gzip 解压缩:

  1. 幻数不正确。确定 。
  2. 没有错误,但 gzipstream 不会解压缩。

它的工作原理如下:

private void HandleTraffic()
{
    while ((bytesRead = realServer.Receive(buffer, 0, BODYBUFFERSIZE, SocketFlags.None)) > 0)
    {
        decompressedBuffer = new byte[BODYBUFFERSIZE];
        if (t == "gzip")
        {

            MemoryStream outputStream = new MemoryStream(), inputStream = new MemoryStream();
            inputStream.Write(buffer, 0, bytesRead);
            inputStream.Position = 0;
            inputStream.Flush();
            using (GZipStream gz = new GZipStream(inputStream, CompressionMode.Decompress))
            {
                gz.CopyTo(outputStream);
            }

            decompressedBuffer = outputStream.ToArray();

            MessageBox.Show(ASCIIEncoding.ASCII.GetString(decompressedBuffer));
        }
    }
}

InputStream 已填充,但 outputStream 未解压缩或给我错误“幻数不正确”。

在这项工作中,需要使用套接字。

4

2 回答 2

0

您不需要以任何方式处理代理服务器中的数据,无论是解压缩、放气等等。只需复制字节。您甚至需要查看的唯一数据是来自客户端的第一行,即 HTTP CONNECT 命令。

于 2012-10-22T09:07:52.637 回答
0

我自己的解决方案是关闭 Fiddler。

于 2013-02-27T17:32:17.047 回答