





















通常我们抓取网页内容,或是下载网络文件使用http协议,当不能预先确定报文体的长度时,不可能在头中包含Content-Length域来指明报文体长度,此时就需要通过Transfer-Encoding域来确定报文体长度。
Transfer-Encoding域的值应当为chunked,表明采用chunked编码方式来进行报文体的传输。chunked编码是HTTP/1.1 RFC里定义的一种编码方式,因此所有的HTTP/1.1应用都应当支持此方式。
在其他的语言的库里面这个的实现完整性应该是不错的。但是在c 或是 c++ 里面有些库就会有问题。我在使用curl 和 codeproject 上面的 generic Http
库的时候就遇到了,当网页文件过大的时候,得到的response 里面会含有很多的 1ff8 开头的空行。 一搜 ,下面这个链接的仁兄也是这个问题:
http://topic.csdn.net/u/20080910/14/19995069-3d08-4e1a-ad2c-93be991b861a.html
这个1ff8 接空行的模式会有规律出现。无论是xml 还是html 的文件中如果多了这些信息,就会解析出错。仔细检查原来自己的curl中的流写入函数有问题。
改写后就好了。这个问题缠了我好久,特意记下来,如果谁要是再次遇到这个模式,可以向这边想想。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。