为了账号安全,请及时绑定邮箱和手机立即绑定

为什么Get请求的返回结果总是一样的?

为什么Get请求的返回结果总是一样的?

慕莱坞森 2019-04-09 20:24:05
问题:使用以下代码发送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);
                            
查看完整回答
反对 回复 2019-04-09
?
UYOU

TA贡献1878条经验 获得超4个赞

看你的评论。别怪别人对你不满,就你这么贴代码片段,不被踩死你来踩我。
贴完整文件出来,给别人阅读理解都少添点麻烦。同时尽量避免IDE环境下的操作,最好能够给出VC命令行版本的编译命令,在cmd.exe里你能运行通过的。别忘了注明VC的明确版本。
                            
查看完整回答
反对 回复 2019-04-09
  • 2 回答
  • 0 关注
  • 445 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号