首页
社区
课程
招聘
[求助][求助]我想做个扫描的软件,获取网页页面字节数但是获取不正确
发表于: 2014-7-30 19:53 4304

[求助][求助]我想做个扫描的软件,获取网页页面字节数但是获取不正确

2014-7-30 19:53
4304
开头用的是openurl  internetreadfile  但是速度 太慢了

这是 httqueryinfo  不知道为什么获取不到

看了半天不知道啥子问题, 哪位大牛给看看啥子问题, 另外如果有更好的方法获取页面字节数也给小弟告知下。
 HINTERNET hSession = InternetOpen(_T("UrlTest"),PRE_CONFIG_INTERNET_ACCESS, NULL, INTERNET_INVALID_PORT_NUMBER, 0); //初始化网络
     if(hSession != NULL)
     {
       CString cs1("");
       CString cs2("");
       CString ss("www.baidu.com");
       HINTERNET ThConnect=InternetConnect(hSession,ss,INTERNET_INVALID_PORT_NUMBER,cs1,cs2,INTERNET_SERVICE_HTTP,0,0);//建立会话链接
       if(ThConnect!=NULL)
       {
         CString requeststyle("GET");
         CString sx("");
         HINTERNET ThHttpFile=HttpOpenRequest(ThConnect,requeststyle,sx,HTTP_VERSION,NULL,0,INTERNET_FLAG_DONT_CACHE,0);
         if(ThHttpFile!=NULL)
         {
           BOOL bSendRequest=HttpSendRequest(ThHttpFile,NULL,0,0,0);
               int number=0;
             while(bSendRequest==NULL)
             {   
               bSendRequest=HttpSendRequest(ThHttpFile,NULL,0,0,0);
               if(number==10)
               {
                 break;
               }
             }
             char bufQuery[32];
             DWORD dwLengthBufQuery=sizeof(bufQuery);
             if(bSendRequest==TRUE)
             {
             BOOL bQuery=HttpQueryInfo(ThHttpFile,HTTP_QUERY_CONTENT_LENGTH,bufQuery,&dwLengthBufQuery,0);

             DWORD dwFileSize=(DWORD)atol(bufQuery);  //将字符串转换成长整形

             char *buffer=new char[dwFileSize+1];
             DWORD dwBytesRead;
             BOOL bRead=InternetReadFile(ThHttpFile,buffer,dwFileSize+1,&dwBytesRead);
             buffer[dwBytesRead]=0;
             CString sm;
             sm.Format(_T("%ld"),dwBytesRead);
             MessageBox(sm);

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 2161
活跃值: (750)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
2
MFC里用API,不知道MFC里有HTTP类么?写法太奇怪了
要么WIN32程序使用WININET API
要么MFC用类库:CInternetSession、CHttpConnection等等
PS:其实我想翻出来我以前写的代码的,无奈找不到了。
2014-7-30 20:48
0
雪    币: 83
活跃值: (158)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
3
没影响瑟。。换成MFC类的API 也不得行。
2014-7-30 23:04
0
雪    币: 283
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
好诡异的写法。。。你直接使用MFC封装好的CInternetSession就能获取到字节数了。按你这样写的按正常来说都是这么写:

DWORD dwReadLength = 0;
HttpQueryInfo(hFile, HTTP_QUERY_CONTEXT, NULL, &dwReadLength, 0);
以dwReadLength为字节数的吧。。。我不知道有没有HTTP_QUERY_CONTEXT这个东西噢,只是举例...
人家都已经封装好了,你就直接用就行了。。。
2014-8-7 11:10
0
雪    币: 83
活跃值: (158)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
5
问题解决了, 我换了MFC封装的函数,问题就解决类QueryInfo
2014-8-7 17:50
0
游客
登录 | 注册 方可回帖
返回
//