解决OpenUrl函数总是得到缓存数据的问题

CInternetSession::OpenURL的问题.

CStdioFile* OpenURL( LPCTSTR pstrURL, //文件URL地址 
DWORD dwContext = 1, //上下文ID 
DWORD dwFlags = INTERNET_FLAG_TRANSFER_ASCII, //标记 
LPCTSTR pstrHeaders = NULL, //发送到服务器的数据头 
DWORD dwHeadersLength = 0 );//发送到服务器的数据头长度

dwFlags可以为: 
INTERNET_FLAG_RELOAD 强制重读数据 
INTERNET_FLAG_DONT_CACHE 不保存到缓存 
INTERNET_FLAG_TRANSFER_ASCII 使用文本数据 
INTERNET_FLAG_TRANSFER_BINARY 使用二进制数据 

一开始不知道为什么这个函数不能获取到最新的数据(默认总是先检查缓存是否有要的数据) ,

那么该如何解决让他总是获得最新数据而不去获得缓存数据呢?


一开始的代码:

file = (CHttpFile*)session.OpenURL(strURL);

后来查看MSDN,及一些网友的帖子,于是找到了症结所在:

file = (CHttpFile*)session.OpenURL(strURL,1,INTERNET_FLAG_TRANSFER_ASCII||INTERNET_FLAG_RELOAD,NULL,0);

这样应该就可以获取更新数据了,但是,结果仍然让人失望!!!!


后来苦苦寻觅,终于发现一个严重错误:“||”和“|”给搞混淆了!!

file = (CHttpFile*)session.OpenURL(strURL,1,INTERNET_FLAG_TRANSFER_ASCII|INTERNET_FLAG_RELOAD,NULL,0);


真的是一个深刻的教训啊!很多错误都是基本功不老或者马虎大意造成的,戒之戒之啊!!

| & 表示位运算,针对数值进行的运算,例如 3 | 2 、78 & 99,其结果仍然应为值数

|| && 表示逻辑运算,||表示或者的意思,&& 表示并且的意思,例如  33>44 || "abcd"=="abcd",其结果是逻辑值true或false


另外,程序中使用了CStringArray定义的变量来保存网页内容,也造成了信息不更新,随后使用CSting变量来存储的网页信息。



  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值