问题:使用以下代码发送http请求test.php的时候,返回的结果总是跟第一次的一样。test.php的源码://输出1到100的随机数C++源码:char*server="127.0.0.1";char*action="/test.php";INTERNET_PORTport=80;char*szHeader="Accept:*/*\r\n""Accept-Language:zh-cn\r\n""User-Agent:Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.0;.NETCLR2.0.50727;.NETCLR1.1.4322)\r\n""Host:%s\r\n""Connection:Closed\r\n\r\n";CStringszHeaders;szHeaders.Format(szHeader,server);CInternetSessionsession;CHttpConnection*pConnection=session.GetHttpConnection(server,port);CHttpFile*pFile=pConnection->OpenRequest(CHttpConnection::HTTP_VERB_GET,action);//BOOLresult=pFile->SendRequest(szHeaders,NULL,NULL);szHeaders.ReleaseBuffer();CStringheader;//获取headerpFile->QueryInfo(HTTP_QUERY_RAW_HEADERS_CRLF,header,0);CStringdata("");//获取HTMLcharszBuff[1025];while(1){intnReadLength=pFile->Read(szBuff,1024);if(nReadLength==0)break;szBuff[nReadLength]='\0';data=data+szBuff;}AfxMessageBox(data);pConnection->Close();session.Close();pFile->Close();deletepFile;deletepConnection;data.ReleaseBuffer();header.ReleaseBuffer();return"";
2 回答

慕雪6442864
TA贡献1812条经验 获得超5个赞
关于CInternetSession缓存问题调用完一次之后,再次调用会出现不发送请求但会返回HTTP_STATUS_OK的现象。需要加一句代码。听说是windowsmobile的一个BUG加上这句代码就可以了:InternetSetOption(session,INTERNET_OPTION_RESET_URLCACHE_SESSION,NULL,0);

UYOU
TA贡献1878条经验 获得超4个赞
看你的评论。别怪别人对你不满,就你这么贴代码片段,不被踩死你来踩我。贴完整文件出来,给别人阅读理解都少添点麻烦。同时尽量避免IDE环境下的操作,最好能够给出VC命令行版本的编译命令,在cmd.exe里你能运行通过的。别忘了注明VC的明确版本。
添加回答
举报
0/150
提交
取消