• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            edog

            冰凍熱狗
            數(shù)據(jù)加載中……

            用CHttpFile實(shí)現(xiàn)簡(jiǎn)單的GET/POST數(shù)據(jù)

            一、GET 數(shù)據(jù),下載網(wǎng)頁,文件等,用于可下載的文件,不能用于服務(wù)端運(yùn)行的程序,比如.aspx文件等,否則會(huì)返回500錯(cuò)誤。
            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+"打開出錯(cuò)."); 
                        }

                    }

                    
            else 
                    
            {
                        strSentence.Format(
            "打開網(wǎng)頁文件出錯(cuò),錯(cuò)誤碼:%d", dwStatus);
                        AfxMessageBox(strSentence);
                    }

                    fileGet
            ->Close();
                    delete fileGet;
                }

                
            else
                    AfxMessageBox(
            "不能找到網(wǎng)頁文件!");

                sess.Close();

            二、POST 數(shù)據(jù),比如用于提交注冊(cè)信息等
            CString strHttpName="http://localhost/TestReg/RegForm.aspx"// 需要提交數(shù)據(jù)的頁面
                CString strFormData = "username=abc&password=123";    // 需要提交的數(shù)據(jù)

                CInternetSession sess;
                CHttpFile
            * fileGet;
                CString strHeaders 
            = _T("Content-Type: application/x-www-form-urlencoded"); // 請(qǐng)求頭

                
            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))    // 讀取提交數(shù)據(jù)后的返回結(jié)果
                        {
                            strGetSentence 
            = strGetSentence + strSentence + char(13+ char(10);
                        }

                        AfxMessageBox(strGetSentence); 
            // 顯示返回網(wǎng)頁內(nèi)容
                    }

                    
            else 
                    
            {
                        strSentence.Format(
            "POST出錯(cuò),錯(cuò)誤碼:%d", dwStatus);
                        AfxMessageBox(strSentence);
                    }

                    
                    fileGet
            ->Close();
                    delete fileGet;
                }

                
            else
                    AfxMessageBox(
            "不能找到網(wǎng)頁文件!");

                sess.Close();

            posted on 2005-12-06 00:19 冰凍熱狗 閱讀(22588) 評(píng)論(6)  編輯 收藏 引用 所屬分類: .NET技術(shù)

            評(píng)論

            # re: 用CHttpFile實(shí)現(xiàn)簡(jiǎn)單的GET/POST數(shù)據(jù)  回復(fù)  更多評(píng)論   

            我在提交后,發(fā)現(xiàn)服務(wù)器只能收到頭一個(gè)字母.請(qǐng)大蝦幫忙
            2007-07-07 11:38 | song

            # re: 用CHttpFile實(shí)現(xiàn)簡(jiǎn)單的GET/POST數(shù)據(jù)  回復(fù)  更多評(píng)論   

            現(xiàn)在博客中都是垃圾,查了半天,全是拷來拷去的.
            2009-03-10 14:14 | 垃圾

            # re: 用CHttpFile實(shí)現(xiàn)簡(jiǎn)單的GET/POST數(shù)據(jù)[未登錄]  回復(fù)  更多評(píng)論   

            服務(wù)器只收到頭一個(gè)字母,是因?yàn)槟闶褂玫腢nicode模式,在編譯器里將其調(diào)整為非Unicode或者將CString轉(zhuǎn)為單字節(jié)模式。
            2009-08-28 09:54 | 123

            # re: 用CHttpFile實(shí)現(xiàn)簡(jiǎn)單的GET/POST數(shù)據(jù)  回復(fù)  更多評(píng)論   

            你那是POST數(shù)據(jù)的代碼。。。。。
            2013-04-25 08:18 | 22

            # re: 用CHttpFile實(shí)現(xiàn)簡(jiǎn)單的GET/POST數(shù)據(jù)[未登錄]  回復(fù)  更多評(píng)論   

            真SB
            2014-08-06 13:42 | 123

            # re: 用CHttpFile實(shí)現(xiàn)簡(jiǎn)單的GET/POST數(shù)據(jù)  回復(fù)  更多評(píng)論   

            很給力啊,慢慢學(xué)習(xí)理解,消化,謝謝樓主分享。
            2015-08-15 02:08 |
            亚洲中文字幕伊人久久无码| 伊人久久大香线蕉亚洲五月天| 性高湖久久久久久久久AAAAA| 久久精品国产影库免费看| 久久精品国产精品亚洲毛片| 欧美午夜A∨大片久久| 日本精品久久久久影院日本 | 性做久久久久久久| 久久精品天天中文字幕人妻| 久久午夜夜伦鲁鲁片免费无码影视 | 日产精品久久久一区二区| 看久久久久久a级毛片| 久久国产精品久久久| 99热成人精品免费久久| 久久免费视频一区| 久久久一本精品99久久精品88| 99久久婷婷免费国产综合精品| 久久最近最新中文字幕大全| 国产一区二区三区久久精品| 久久久老熟女一区二区三区| 久久这里只有精品18| 国产亚州精品女人久久久久久 | 蜜桃麻豆www久久国产精品| 亚洲女久久久噜噜噜熟女| 国产精品一久久香蕉国产线看| 国产成人精品久久一区二区三区av | 精品国产99久久久久久麻豆| 久久综合亚洲鲁鲁五月天| 中文精品99久久国产 | 国产亚洲美女精品久久久| 狠狠色丁香婷婷久久综合五月| 色综合久久久久综合体桃花网| 一本大道加勒比久久综合| 亚洲欧美一区二区三区久久| 久久综合给合久久狠狠狠97色| 久久久久亚洲精品无码网址 | 久久ZYZ资源站无码中文动漫| 久久精品国产一区二区| 欧美久久亚洲精品| 中文字幕一区二区三区久久网站| 蜜桃麻豆WWW久久囤产精品|