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变量来存储的网页信息。