c++ - 为什么Get请求的返回结果总是一样的?
伊谢尔伦
伊谢尔伦 2017-04-17 11:15:55
[C++讨论组]

问题:使用以下代码发送http请求test.php的时候,返回的结果总是跟第一次的一样。
test.php的源码:
//输出1到100的随机数

<?php
echo rand(1,100);
?>

C++源码:

char* server="127.0.0.1";
        char * action="/test.php";
        INTERNET_PORT port = 80;
        char * szHeader= "Accept: */*\r\n"
                  "Accept-Language: zh-cn\r\n"
                  "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 2.0.50727; .NET CLR 1.1.4322)\r\n"
                  "Host: %s\r\n"
                  "Connection: Closed\r\n\r\n";
        CString szHeaders;
        szHeaders.Format (szHeader,server);
        CInternetSession session;
        CHttpConnection* pConnection = session.GetHttpConnection(server,port);
        CHttpFile* pFile = pConnection->OpenRequest(CHttpConnection::HTTP_VERB_GET,action);//
        BOOL result = pFile->SendRequest(szHeaders,NULL,NULL);
        szHeaders.ReleaseBuffer ();

        CString header;//获取header
        pFile->QueryInfo(HTTP_QUERY_RAW_HEADERS_CRLF,header,0);
        CString data("");//获取HTML
        char szBuff[1025];
        while(1)
        {
                int nReadLength = pFile->Read(szBuff, 1024);
                if(nReadLength==0) break;
                szBuff[nReadLength]='\0';
                data=data+szBuff;
        }
        AfxMessageBox(data);
        pConnection->Close();
        session.Close();
        pFile->Close();
        delete pFile;
        delete pConnection;
        data.ReleaseBuffer ();
        header.ReleaseBuffer ();
        return "";
伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(2)
PHP中文网

关于CInternetSession缓存问题

调用完一次之后,再次调用会出现不发送请求但会返回 HTTP_STATUS_OK 的现象。
需要加一句代码。听说是windows mobile 的一个BUG
加上这句代码就可以了:

InternetSetOption (session,INTERNET_OPTION_RESET_URLCACHE_SESSION,NULL,0); 
迷茫

看你的评论。别怪别人对你不满,就你这么贴代码片段,不被踩死你来踩我。

贴完整文件出来,给别人阅读理解都少添点麻烦。同时尽量避免IDE环境下的操作,最好能够给出VC命令行版本的编译命令,在cmd.exe里你能运行通过的。别忘了注明VC的明确版本。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号