请高人指点关于MemoryStream和gzip的问题

qugui 2007-06-07 08:20:42
本人自已做了一个Http GET的类,该类返回一个MemoryStream流,但我的测试服务器没有开GZIP时,没有任何问题,但当我开了GZIP后,用ICSharpCode.SharpZipLib.GZip提供的方法对其流解压动解不出东西,而对HttpWebResponse返回的流解压正常,我的MemoryStream流和HttpWebResponse返回的流Stream唯一区别就在我的流包括了Http返回的头文件,而HttpWebResponse却不包括。
请高人指点我该如何分开返回信息中的头文件和正文?
...全文
410 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
qugui 2007-06-07
  • 打赏
  • 举报
回复
报文我也去掉了,但还是解不出来
kimmking 2007-06-07
  • 打赏
  • 举报
回复
下载一个Tcpmon.jar之类的工具抓下双方的http报文看看。
kimmking 2007-06-07
  • 打赏
  • 举报
回复
要分析和去掉http响应的报文的头部
impeller 2007-06-07
  • 打赏
  • 举报
回复
两钻的都出来了
qugui 2007-06-07
  • 打赏
  • 举报
回复
这是我写的类。
孟子大哥,你给的网页我看了,它是对HttpWebRequest的方法,那个我知道,我现在不知道要怎么写才能实现和HttpWebRequest的一样的返回stream流。
我用查找\r\n\r\n再开始读数据到MemoryStream 流,但是在后面还是解不出来.
private MemoryStream HttpRequest(string Url)
{
MemoryStream ms2 = new MemoryStream();
string res="";
string ip=null;
IPHostEntry heserver = Dns.Resolve(textBox1.Text.Trim());
foreach (IPAddress curAdd in heserver.AddressList)
{
ip= curAdd.ToString();
}
try
{

// label1.Text=i.ToString();
MyServer1=new IPEndPoint(IPAddress.Parse(ip),80);
sock1 =new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
sock1.Connect(MyServer1);
string str="GET / HTTP/1.1\r\nAccept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-shockwave-flash, */*\r\nAccept-Language: zh-cn\r\nUA-CPU: x86\r\nAccept-Encoding: gzip, deflate\r\nUser-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322)\r\nConnection: Keep-Alive\r\nHost:"+Url+"\r\n\r\n";
byte [] bt =Encoding.UTF8.GetBytes(str);
sock1.Send(bt,0,bt.Length,SocketFlags.None);

byte[] RecvBytes = new byte[1];
int bytes;
while (true)
{

bytes = sock1.Receive(RecvBytes, SocketFlags.None);


if(res.IndexOf("\r\n\r\n")>=0)
{
ms2.Write(RecvBytes, 0, bytes);
}
res += Encoding.UTF8.GetString(RecvBytes,0,bytes);
if(sock1.Available<=0) break;
}
sock1.Close();
ms2.Seek(0, SeekOrigin.Begin);
return ms2;


}
catch(Exception ex)
{
textBox2.Text+=ex.Message+"\r\n";
return ms2;
}
}
lsq667 2007-06-07
  • 打赏
  • 举报
回复
沙发啊~~
先占了再说
帮楼主顶下先了
孟子E章 2007-06-07
  • 打赏
  • 举报
回复
http://blog.csdn.net/qqwwee_com/archive/2006/04/14/664049.aspx
是VB.net的

VB.net 转C#
http://www.developerfusion.co.uk/utilities/convertvbtocsharp.aspx

孟子E章 2007-06-07
  • 打赏
  • 举报
回复
.NET Framework 1.1可以参考
http://www.codeproject.com/aspnet/CompressibleHTTP.asp

.net 2.0可参考

http://blog.csdn.net/qqwwee_com/archive/2006/04/14/664049.aspx
源码下载地址: https://pan.quark.cn/s/40677b766bda "ContextCapture 倾斜摄影快速、创新及全面空三建模与单机集群硬件部署方案2018" 此资源聚焦于倾斜摄影(ContextCapture)空三建模及单机集群硬件部署方案,致力于为用户呈现最快、最优成本效益的台式工作站、移动工作站、并行集群的多样化部署选择。以下是该资源的详细知识点概述: 一、相关设备型号说明 * UltraLAB 是西安坤隆计算机科技有限公司推出的专属图形工作站品牌,具备三大卓越优势:顶尖的计算硬件架构、精准的行业应用定制服务、专业的硬件系统优化工艺。 二、硬件部署方案 * 台式工作站部署建议:设备特色在于当前市场上最快的台式计算架构,适用于办公场景下,部门层级常规的倾斜摄影空三处理、三维建模。 * 便携式工作站部署建议:设备特色在于当前市场上最快的移动计算架构,适用于移动倾斜摄影的空三处理、三维建模工作站。 * 大数据量处理工作站推荐:设备特色在于极限自动超频加速与16个并行存储构造,具备空三处理和三维建模最强的计算性能及海量高速并行存储性能。 * 多设备并行计算集群部署建议:针对海量图像数据计算产生的巨大需求,单机计算能力处理时间过长,效率不高,通过多台机器并行集群,进行空三处理、三维建模,显著减少处理时间。 三、部署方案深入解析 * 2.1 倾斜摄影建模(台式工作站)部署方案:设备特色在于最高的计算处理能力~6核5.2GHz,内存最大配置可达64GB,配备最新图灵架构的RTX显卡,相比市场其他品牌机器(单CPU、双Xeon处理器)更快、更具成本效益。 * 2.2 倾斜摄影建模(移动便携式工作站)硬件部署方案:设备特色在于最高的计算处理能力~6...

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧