抓取网页、以及传输网络文件产生 “1ff8” 串的原因
2008-12-27 22:50
357 查看
通常我们抓取网页内容,或是下载网络文件使用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中的流写入函数有问题。
改写后就好了。这个问题缠了我好久,特意记下来,如果谁要是再次遇到这个模式,可以向这边想想。
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中的流写入函数有问题。
改写后就好了。这个问题缠了我好久,特意记下来,如果谁要是再次遇到这个模式,可以向这边想想。
相关文章推荐
- 错误蓝屏死机重启产生的.dmp文件如何打开以及如何分析蓝屏的原因
- Android Studio中R文件丢失可能的产生原因 以及解决方案
- 网络爬虫框架的搭建以及使用HttpClient抓取解析网页的详细步骤
- Windows7蓝屏后产生的.dmp文件如何打开以及如何分析蓝屏的原因
- 关于文件、网络传输以及内存存储的大小端问题
- Windows7蓝屏后或系统故障产生的.dmp文件如何打开以及如何分析蓝屏的原因
- android studio中 R文件丢失可能的产生原因 以及解决方案
- 网络爬虫(网络蜘蛛)之网页抓取
- linux系统基本命令之文件归档,压缩以及传输
- Android内存泄漏产生的原因以及解决方案(OOM)
- linux系统修改系统时间重启后导致文件系统错误原因以及修复方法
- C# Maximum request length exceeded. 产生错误的原因,以及解决方法.
- ASP+FSO生成的网页文件默认编码格式以及转换成UTF-8编码方法
- VMware虚拟机的三种网络连接方式以及主机向虚拟机发送文件的实现
- 用wget命令的爬虫功能抓取网页到本地文件,然后用grep命令分析文件。
- java socket 多线程网络传输多个文件
- 详解网络传输中的三张表,MAC地址表、ARP缓存表以及路由表 推荐
- python-网络爬虫初学一:获取网页源码以及发送POST和GET请求
- android sqlite db-journal文件产生原因及说明 .
- 传输层-5、网络拥塞原因和TCP拥塞控制