• <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>
            隨筆 - 298  文章 - 377  trackbacks - 0
            <2007年8月>
            2930311234
            567891011
            12131415161718
            19202122232425
            2627282930311
            2345678

            常用鏈接

            留言簿(34)

            隨筆分類

            隨筆檔案

            文章檔案

            相冊

            收藏夾

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            以下是兩個文件:HttpClient.h HttpClient.cpp 一個類
            (錯誤檢測部分沒有加入)
            使用方法
            1:get方式
            CHttpClient conn;
            CString value="value=conn.doGet(value);
            2:post方式
            CHttpClient conn;
            CString value="
            conn.addParam("name1","value1");
            conn.addParam("name2","value2");
            conn.addParam("name3","value3");
            conn.addParam("name4","value4");
            conn.addParam("name5","value5");
            conn.addParam("name6","value6");
            value=conn.doPost(value);

            // HttpClient.h: interface for the CHttpClient class.
            //
            //////////////////////////////////////////////////////////////////////

            #if !defined(AFX_HTTPCLIENT_H__EA769DCB_AAB9_47CD_BD87_FBD6913592C5__INCLUDED_)
            #define AFX_HTTPCLIENT_H__EA769DCB_AAB9_47CD_BD87_FBD6913592C5__INCLUDED_

            #if _MSC_VER > 1000
            #pragma once
            #endif // _MSC_VER > 1000
            #include "wininet.h"
            #include "afxinet.h"
            class CHttpClient
            {
            public:
            void addParam(CString name,CString value);
            CString doPost(CString href);
            CString doGet(CString href);
            CHttpClient();
            virtual ~CHttpClient();

            private:
            CString CONTENT;
            int CL;
            CStringList values;
            CStringList names;
            };

            #endif // !defined(AFX_HTTPCLIENT_H__EA769DCB_AAB9_47CD_BD87_FBD6913592C5__INCLUDED_)

            ++++++++++++++++++++++++++++++++++++++


            // HttpClient.cpp: implementation of the CHttpClient class.
            //
            //////////////////////////////////////////////////////////////////////

            #include "stdafx.h"
            #include "emailsenderv2.h"
            #include "HttpClient.h"

            #ifdef _DEBUG
            #undef THIS_FILE
            static char THIS_FILE[]=__FILE__;
            #define new DEBUG_NEW
            #endif

            //////////////////////////////////////////////////////////////////////
            // Construction/Destruction
            //////////////////////////////////////////////////////////////////////

            CHttpClient::CHttpClient()
            {

            }

            CHttpClient::~CHttpClient()
            {

            }

            CString CHttpClient::doGet(CString href)
            {
            CString httpsource="";
            CInternetSession session1(NULL,0);
            CHttpFile* pHTTPFile=NULL;
            try{
            pHTTPFile=(CHttpFile*)session1.OpenURL(href);
            //session1.
            }catch(CInternetException){
            pHTTPFile=NULL;
            }
            if(pHTTPFile)
            {
            CString text;
            for(int i=0;pHTTPFile->ReadString(text);i++)
            {
            httpsource=httpsource+text+"\r\n";
            }
            pHTTPFile->Close();
            delete pHTTPFile;
            }else
            {

            }
            return httpsource;
            }

            CString CHttpClient::doPost(CString href)
            {
            CString httpsource="";
            CInternetSession session1;
            CHttpConnection* conn1=NULL;
            CHttpFile* pFile = NULL;
            CString strServerName;
            CString strObject;
            INTERNET_PORT nPort;
            DWORD dwServiceType;
            AfxParseURL((LPCTSTR)href,dwServiceType, strServerName, strObject, nPort);
            DWORD retcode;
            char* outBuff = CONTENT.GetBuffer(1000);
            try
            {
            conn1 = session1.GetHttpConnection(strServerName,nPort);
            pFile = conn1->OpenRequest(0,strObject,NULL,1,NULL,"HTTP/1.1",INTERNET_FLAG_EXISTING_CONNECT|INTERNET_FLAG_NO_AUTO_REDIRECT);
            pFile -> AddRequestHeaders("Content-Type: application/x-www-form-urlencoded");
            pFile -> AddRequestHeaders("Accept: */*");
            pFile -> SendRequest(NULL,0,outBuff,strlen(outBuff)+1);
            pFile -> QueryInfoStatusCode(retcode);
            }
            catch (CInternetException * e){};
            if(pFile)
            {
            CString text;
            for(int i=0;pFile->ReadString(text);i++)
            {
            httpsource=httpsource+text+"\r\n";
            }
            pFile->Close();
            }else
            {

            }
            return httpsource;
            delete pFile;
            delete conn1;
            session1.Close();
            }

            void CHttpClient::addParam(CString name, CString value)
            {
            names.AddTail((LPCTSTR)name);
            values.AddTail((LPCTSTR)value);
            CString eq="=";
            CString an="&";
            CONTENT=CONTENT+name+eq+value+an;
            CL=CONTENT.GetLength();
            }


            FeedBack:
            # re: VC實現(xiàn)HTTP協(xié)議的GET和POST方法 2013-03-02 17:15 愛問
            Httpwatch studio 獲取的數(shù)據(jù)
            /*****************Stream************************/
            POST /s HTTP/1.1
            Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/xaml+xml, application/vnd.ms-xpsdocument, application/x-ms-xbap, application/x-ms-application, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
            Referer: http://cet.99sushe.com/
            Accept-Language: zh-cn
            Content-Type: application/x-www-form-urlencoded
            UA-CPU: x86
            Accept-Encoding: gzip, deflate
            User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; InfoPath.2)
            Host: cet.99sushe.com
            Content-Length: 36
            Connection: Keep-Alive
            Cache-Control: no-cache
            Cookie: CNZZDATA30023677=cnzz_eid%3D1415864779-1362203966-http%253A%252F%252Fcet.99sushe.com%26ntime%3D1362210264%26cnzz_a%3D4%26retime%3D1364214548375%26sin%3D%26ltime%3D1362210545355%26rtime%3D0; searchtime=1362210583

            id=372121122201234&name=%CF%F6%C0%66

            /**************************************/
            像這樣的數(shù)據(jù)應該怎么用POST提交呀?
            searchtime如何獲取?
            name這樣的代碼又是什么代碼?怎么轉(zhuǎn)換?
            菜鳥一枚,詳細解釋下吧!非常感謝!
              回復  更多評論
              
            # re: VC實現(xiàn)HTTP協(xié)議的GET和POST方法[未登錄] 2013-09-27 18:56 mark
            非常好。  回復  更多評論
              
            草草久久久无码国产专区| 久久久精品波多野结衣| 久久亚洲AV成人无码国产| 国产综合久久久久| 久久精品亚洲乱码伦伦中文| 久久精品卫校国产小美女| 久久99国产乱子伦精品免费| 日韩欧美亚洲综合久久影院Ds | 国产福利电影一区二区三区久久老子无码午夜伦不 | 亚洲欧美国产精品专区久久| 亚洲国产精品无码久久| 精品久久久无码中文字幕天天| 久久久SS麻豆欧美国产日韩| 久久九九全国免费| 麻豆AV一区二区三区久久| 亚洲午夜精品久久久久久app| 久久久久国产一级毛片高清版| 亚洲国产欧洲综合997久久| 国产亚洲色婷婷久久99精品91| 成人国内精品久久久久一区| 久久99久久99精品免视看动漫| 久久久久亚洲AV综合波多野结衣| 国内精品久久久久伊人av| 亚洲中文字幕久久精品无码APP| 久久精品18| 国产视频久久| 亚洲天堂久久精品| 久久香蕉国产线看观看99| 久久综合给合久久狠狠狠97色 | 91精品国产91热久久久久福利 | 国产精品99久久久精品无码 | 久久精品九九亚洲精品| 伊人久久大香线焦AV综合影院| 久久久久久国产a免费观看黄色大片 | 高清免费久久午夜精品| 久久亚洲欧美国产精品| 日韩久久久久久中文人妻| 青草国产精品久久久久久| 粉嫩小泬无遮挡久久久久久| 国产精品九九九久久九九| 7国产欧美日韩综合天堂中文久久久久|