本站首页    管理页面    写新日志    退出


 

 

 


最新日志

练车
今天是2011年07月02号
温馨
CInternetSession 类
CHttpFile实现Get/Post
在MFC中加一个控制台DOS界面
strtol 函数
outputParam
有关CTime和ColeDateTime
variant_t ,_bstr_t 与

 


 

最近的评论

回复:CHttpFile实现Get/Po
回复:好久没有来了
回复:参数自整定的模糊PID
回复:电子设计大赛自由命题可参考的题目
回复:数字万用表使用方法
回复:公交车上巨搞笑的一幕
回复:电子设计大赛自由命题可参考的题目
回复:电子设计大赛自由命题可参考的题目
回复:电子设计大赛自由命题可参考的题目
回复:暑假回来

 


 

连接




    

CHttpFile实现Get/Post
sccwqiang 发表于 2009-8-5 17:42:42

CHttpFile实现Get/Post 一、GET 数据,下载网页,文件等,用于可下载的文件,不能用于服务端运行的程序,比如.aspx文件等,否则会返回500错误。 CString strSentence, strWriteName="1.htm";    CString strFileName="http://localhost/InDesign/" + strWriteName;     CInternetSession sess;    CHttpFile* fileGet;    try    {        fileGet=(CHttpFile*)sess.OpenURL(strFileName);    }    catch(CException* e)    {        fileGet = 0;        throw;    }        if(fileGet)    {        DWORD dwStatus;        DWORD dwBuffLen = sizeof(dwStatus);        BOOL bSuccess = fileGet->QueryInfo(HTTP_QUERY_STATUS_CODE|HTTP_QUERY_FLAG_NUMBER, &dwStatus, &dwBuffLen);         if( bSuccess && dwStatus>= 200&& dwStatus<300 )         {             CStdioFile fileWrite;             if(fileWrite.Open(strWriteName, CFile::modeWrite|CFile::modeCreate))            {                 while(fileGet->ReadString(strSentence))                {                    fileWrite.WriteString(strSentence+"\n");                }                fileWrite.Close();                AfxMessageBox("下载完毕");            }            else            {                AfxMessageBox("本地文件"+strWriteName+"打开出错.");             }        }        else         {            strSentence.Format("打开网页文件出错,错误码:%d", dwStatus);            AfxMessageBox(strSentence);        }        fileGet->Close();        delete fileGet;    }    else        AfxMessageBox("不能找到网页文件!");     sess.Close(); 二、POST 数据,比如用于提交注册信息等 CString strHttpName="http://localhost/TestReg/RegForm.aspx"; // 需要提交数据的页面    CString strFormData = "username=abc&password=123";    // 需要提交的数据     CInternetSession sess;    CHttpFile* fileGet;    CString strHeaders = _T("Content-Type: application/x-www-form-urlencoded"); // 请求头     try    {        fileGet=(CHttpFile*)sess.OpenURL(strHttpName);//打开文件    }    catch(CException* e)    {        fileGet = 0;        throw;    }     CString strSentence, strGetSentence = "";    if(fileGet)    {        DWORD dwStatus;        DWORD dwBuffLen = sizeof(dwStatus);        BOOL bSuccess = fileGet->QueryInfo(HTTP_QUERY_STATUS_CODE|HTTP_QUERY_FLAG_NUMBER, &dwStatus, &dwBuffLen);        if( bSuccess && dwStatus>= 200 &&dwStatus<300 )        {             BOOL result = fileGet->SendRequest(strHeaders, (LPVOID)(LPCTSTR)strFormData, strFormData.GetLength());            while(fileGet->ReadString(strSentence))    // 读取提交数据后的返回结果            {                strGetSentence = strGetSentence + strSentence + char(13) + char(10);            }            AfxMessageBox(strGetSentence); // 显示返回网页内容        }        else         {            strSentence.Format("POST出错,错误码:%d", dwStatus);            AfxMessageBox(strSentence);        }                fileGet->Close();        delete fileGet;    }    else        AfxMessageBox("不能找到网页文件!");     sess.Close();   补充:  void   xx(void)     {     CHAR   szReceiveBuffer[36000];     memset(szReceiveBuffer,0,36000);     char   *req="POST   HTTP/1.0\r\n"     "Accept:   image/gif,   image/x-xbitmap,   image/jpeg,   image/pjpeg,   application/vnd.ms-excel,   application/msword,   application/vnd.ms-powerpoint,   */*\r\n"     "Accept-Language:   en-us\r\n"     "Accept-Encoding:   gzip,   deflate\r\n"     "User-Agent:   Mozilla/4.0\r\n"     "Content-Length:   34\r\n"     "Host:   127.0.0.1\r\n"     "Content-Type:   application/x-www-form-urlencoded\r\n\r\n";         LPSTR   lpOptions="user=admin&Pwd=admin&submit=提交";         CInternetSession   cInternetSession;     CHttpConnection   *   pHttpConnection   =   cInternetSession.GetHttpConnection(_T("127.0.0.1"),   (INTERNET_PORT)80);     CHttpFile   *   pHttpFile   =   pHttpConnection->OpenRequest("POST",   _T("/admin/test.asp"));     pHttpFile->AddRequestHeaders(req);     pHttpFile->SendRequest(0,0,   (LPVOID)   lpOptions,   (DWORD)strlen(lpOptions));     pHttpFile->Read(szReceiveBuffer,   36000);     cInternetSession.Close();     //CString   hh=szReceiveBuffer;     //if(hh.Find("您输入了错误的帐号或",0))                     MessageBox(szReceiveBuffer);         return   ;     }   本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/taixi1268/archive/2009/04/13/4069881.aspx

阅读全文(4838) | 回复(1) | 编辑 | 精华


回复:CHttpFile实现Get/Post
cc(游客)发表评论于2009-12-23 14:06:23

aww

个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除

» 1 »

发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)

 

 

 


站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.047 second(s), page refreshed 144326825 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号