我做了一个简单的代理服务器。工作正常,但不是gzip解压缩:
它的工作原理如下:
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没有解压缩或者给我错误'幻数不正确'。
在这项工作中,需要套接字。
答案 0 :(得分:0)
您无需以任何方式处理代理服务器中的数据,解压缩,放气,无论如何。只需复制字节即可。您需要查看的唯一数据是客户端的第一行,即HTTP CONNECT命令。
答案 1 :(得分:0)
我自己的解决办法就是关闭Fiddler。