libcurl:开源的http库学习
其实curl还可以用来做ftp等协议,这里只用到http下载功能,公司用的是自己写的http库,对一些异常处理做的不够好,出了两次问题,所以决定会稳定的curl。
第一次是因为cdn采取了cname的解析方式,但是公司的库没有处理cname方式,所以就悲剧了,赶紧加上了cname的处理方式。
第二次是因为获取要下载的文件时,需要先获取文件长度时(Head),发送Head请求后,网络库是等待web server主动断开后,再去解析数据获取长度(Content-Length),但是由于cdn改变了策略,加了一个连接复用的优化没有和我们断开连接,于是我们又悲剧了。
经过两次打击,决定使用libcurl,毕竟开源项目经过大家的努力对于这些异常情况处理也很完善了。
先使用简单的easy模式,发现了一个问题,就是会出现卡死的情况,就是长时间收不到数据,
posted on 2015-06-27 13:53 driverdevelop 阅读(673) 评论(0) 编辑 收藏 举报