如何判断无Content-Length头的http协议消息传输完毕了啊?! 目前小弟能想到的方法就是等待几秒钟来判断,请问各位大侠怎么更有效的判断消息传输完毕了呢?! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 HTTP/1.1 200 OkServer: Microsoft-IIS/5.1Date: Fri, 05 Dec 2008 12:50:01 GMTX-Powered-By: ASP.NETTransfer-Encoding: chunkedContent-Type: text/html58c...........实体..........0在实体前后有些字符串,小弟不懂具体函数,猜想应该和实体长度有关系我看了im286.com的响应实体也是类似的 实体最后也是个0 “在有时服务器生成HTTP回应是无法确定消息大小的,这时用Content-Length就无法事先写入长度,而需要实时生成消息长度,这时服务器一般采用Chunked编码。”不过还是有个疑问,如上面的数据包中“58c”是16进制的实体长度,既然这里得到了实体长度为什么Content-Length就无法写入长度呢?!如果真的是无法取得实体长度为什么就应该是:“响应头Chunked开始标志实体0(结束标志)” 对于Chunked,主要是用于那些未知结果的查询,比如分布式的搜索引擎,搜索到一份结果就输出一份。大概的格式是:基本上是,一行数据分块(Chunk-Data)大小接一段数据分块内容...直到表示数据分块大小的行为"零"表示结束。 Http Head... 16进制实体大小(既然这里已经得到了实体大小,为什么不写到响应头中去呢?!如果真的是无法得到,就是有点数据就输出一点数据,这里就应该是个实体开始标记,结合末尾的0就知道实体传输完毕了啊!实在是不明白。)Chunk-Data Size In Byte(1) Chunk-Data(1)... Chunk-Data Size In Byte(2) Chunk-Data(2)... ... Chunk-Data Size In Byte(n) Chunked Data(n)... 0 16进制实体大小,出现在实体之前,就是说程序已经得知实体长度了,为什么不写到响应头中去呢?!或者是说响应头生成后无法在更改了?! vtData() = .GetChunk(1024, icByteArray) '循环分块下载 Do While UBound(vtData) > 0 vtData() = .GetChunk(1024, icByteArray) Loop 不同语言会有相应的API封装的 VB 实时错误 '424':要求对象 向网页 定时发送消息 用vb如何实现? VB如何向模块编写窗体事件 access数据库中内容如何存成文本格式? 有一个Button控件,被鼠标点击时应该怎样才能一个颜色选择框,这样可以选择不同的颜色? 感谢TechnoFantasy对我的信任,放分200 请您解一下“爱因斯坦的难题”^_^ 用postmessage向桌面发送右键没反应? hnlzh(吸海垂虹):麻烦你看看这个帖子。 文本格式控制 关于类封装的问题,顺便散分! TextBox 换行的问题
HTTP/1.1 200 Ok
Server: Microsoft-IIS/5.1
Date: Fri, 05 Dec 2008 12:50:01 GMT
X-Powered-By: ASP.NET
Transfer-Encoding: chunked
Content-Type: text/html58c
...........实体..........
0在实体前后有些字符串,小弟不懂具体函数,猜想应该和实体长度有关系我看了im286.com的响应实体也是类似的 实体最后也是个0
“在有时服务器生成HTTP回应是无法确定消息大小的,这时用Content-Length就无法事先写入长度,而需要实时生成消息长度,这时服务器一般采用Chunked编码。”不过还是有个疑问,如上面的数据包中“58c”是16进制的实体长度,既然这里得到了实体长度为什么Content-Length就无法写入长度呢?!如果真的是无法取得实体长度为什么就应该是:
“
响应头Chunked开始标志
实体
0(结束标志)
”
大概的格式是:
基本上是,一行数据分块(Chunk-Data)大小接一段数据分块内容...直到表示数据分块大小的行为"零"表示结束。
Chunk-Data Size In Byte(1)
Chunk-Data(1)...
Chunk-Data Size In Byte(2)
Chunk-Data(2)...
...
Chunk-Data Size In Byte(n)
Chunked Data(n)...
0 16进制实体大小,出现在实体之前,就是说程序已经得知实体长度了,为什么不写到响应头中去呢?!或者是说响应头生成后无法在更改了?!
'循环分块下载
Do While UBound(vtData) > 0
vtData() = .GetChunk(1024, icByteArray)
Loop