解决通过CHttpFile获取远程图片,图片长度取得不准确的问题

来源:互联网 发布:淘宝如何提升销量 编辑:程序博客网 时间:2024/04/28 00:51

一 .采用CHttpFile和CInternetSession类去获取图片

如下图中红色方框中所示的方式,并不能每次都能获取到正确的远程图片长度,我的测试工控机,就始终不能获取到图片,原因可能是CHttpFile类是直接去获取图片,通过网络获取图片需要时间,因此会造成GetLength()函数不能获取到正确的数据,使用一个循环去等待也没有解决该问题,也许是计算不准确。下面是我的代码截图


二.网上有一位师兄给出了一个方式


经过测试能行,但是他也坦诚这是一个不太正宗的做法,我不太明白不正宗在什么地方,可能还是图片没有接收完毕,就去计算长度的问题吧。

三.直接获取HTTP协议头

通过CHttpFile提供的成员函数直接获取HTTP头,并取得Content-Length字段的值,该字的值就是图片文件的长度。如下图代码


经过测试此方法也可以,在工控机上运行同样能够正确的获得到图片,但我想图片数据如果没有接收完全,虽然拿到类图片长度,但本地的pfile中并不是一个完整的图片,是否仍然会获取失败,测试成功也许是个巧合。

实在不行也可以采用Socket的方式自己按照HTTP协议写一个接收类,当得到了完整的图片时才进行其他操作。


这是我的小白用MFC的一篇工作总结中的一部分,写点总结留个纪念,也算是鼓励自己,我在豆丁上传了一个完整的word文档,感兴趣的话欢迎下载,免费的。

博客写的不多,不太会排版,有点乱请包涵指正!!



0 0
原创粉丝点击