• <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
            <2012年6月>
            272829303112
            3456789
            10111213141516
            17181920212223
            24252627282930
            1234567

            常用鏈接

            留言簿(34)

            隨筆分類

            隨筆檔案

            文章檔案

            相冊(cè)

            收藏夾

            搜索

            •  

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            以下是兩個(gè)文件:HttpClient.h HttpClient.cpp 一個(gè)類
            (錯(cuò)誤檢測(cè)部分沒有加入)
            使用方法
            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實(shí)現(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ù)應(yīng)該怎么用POST提交呀?
            searchtime如何獲取?
            name這樣的代碼又是什么代碼?怎么轉(zhuǎn)換?
            菜鳥一枚,詳細(xì)解釋下吧!非常感謝!
              回復(fù)  更多評(píng)論
              
            # re: VC實(shí)現(xiàn)HTTP協(xié)議的GET和POST方法[未登錄] 2013-09-27 18:56 mark
            非常好。  回復(fù)  更多評(píng)論
              
            欧洲性大片xxxxx久久久| 亚洲精品无码久久久影院相关影片| 久久精品亚洲一区二区三区浴池| 久久夜色精品国产亚洲| 久久天天躁狠狠躁夜夜躁2O2O| 国产精品免费看久久久| 国产精品久久久久一区二区三区| 狠狠色丁香婷婷久久综合五月| WWW婷婷AV久久久影片| 国产精品成人精品久久久| 久久国产欧美日韩精品免费| 精品久久久久香蕉网| 日韩精品无码久久一区二区三 | 亚洲国产精品无码成人片久久| 国产精品免费福利久久| 亚洲国产成人久久一区久久| 久久se精品一区二区| 久久久久青草线蕉综合超碰| 欧美亚洲另类久久综合| 人妻无码αv中文字幕久久| 久久这里只有精品久久| 久久综合国产乱子伦精品免费| 久久亚洲2019中文字幕| 久久精品免费观看| 久久精品国产乱子伦| 少妇久久久久久被弄到高潮| 99精品久久精品一区二区| 人妻精品久久久久中文字幕69 | 精品久久久久国产免费| 久久亚洲精品中文字幕| 久久久久97国产精华液好用吗| 777米奇久久最新地址| 精品国产青草久久久久福利| 久久精品成人免费国产片小草 | 久久精品国产亚洲AV蜜臀色欲| 国产69精品久久久久9999| www久久久天天com| 久久精品成人免费看| 欧美精品一区二区精品久久| 国产精品久久免费| 国产精品一久久香蕉产线看 |