• <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年7月>
            24252627282930
            1234567
            891011121314
            15161718192021
            22232425262728
            2930311234

            常用鏈接

            留言簿(34)

            隨筆分類

            隨筆檔案

            文章檔案

            相冊

            收藏夾

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            //上報數據
            BOOL ReportData_V2(const char* szUrl, const char* szData, CString &sError)
            {
            CString strServer;
            CString strObject;
            INTERNET_PORT nPort;
            DWORD dwServiceType;
            if (!AfxParseURL(szUrl, dwServiceType, strServer, strObject, nPort))
            {
            return FALSE;
            }


            if (dwServiceType != AFX_INET_SERVICE_HTTPS && dwServiceType != AFX_INET_SERVICE_HTTP)
            {
            return FALSE;
            }


            HINTERNET m_hOpen;
            HINTERNET m_hConnect;
            HINTERNET m_hRequest;


            //1. init www 
            m_hOpen = InternetOpen(TEXT("PervasiveBiz"), INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0);
            if (!m_hOpen)
            {
            return FALSE;
            }


            //2. connect
            //if (!(m_hConnect = InternetConnect(m_hOpen, strServer, INTERNET_DEFAULT_HTTP_PORT, NULL, NULL, INTERNET_SERVICE_HTTP, INTERNET_FLAG_RELOAD, 0)))
            if (!(m_hConnect = InternetConnect(m_hOpen, strServer, nPort, NULL, NULL, dwServiceType, 0, 0)))
            {
            InternetCloseHandle(m_hOpen);
            return FALSE;
            }


            //3. 創建HTTP請求句柄
            LPTSTR AcceptTypes[2] = { TEXT("*/*"), NULL };
            DWORD dwFlags = INTERNET_FLAG_RELOAD | INTERNET_FLAG_NO_CACHE_WRITE;
            if (!(m_hRequest = HttpOpenRequest(m_hConnect, _T("POST"), strObject, _T("HTTP/1.1"), NULL, (LPCTSTR*)AcceptTypes, dwFlags, 0)))
            {
            InternetCloseHandle(m_hConnect);
            InternetCloseHandle(m_hOpen);
            return FALSE;
            }


            //4..設置Internet參數
            DWORD dwHttpTimeout = 5000;
            if (!InternetSetOption(m_hRequest, INTERNET_OPTION_CONNECT_TIMEOUT, &dwHttpTimeout, sizeof(DWORD)))
            {
            InternetCloseHandle(m_hRequest);
            InternetCloseHandle(m_hConnect);
            InternetCloseHandle(m_hOpen);
            return FALSE;
            }
            if (!InternetSetOption(m_hRequest, INTERNET_OPTION_SEND_TIMEOUT, &dwHttpTimeout, sizeof(DWORD)))
            {
            InternetCloseHandle(m_hRequest);
            InternetCloseHandle(m_hConnect);
            InternetCloseHandle(m_hOpen);
            return FALSE;
            }
            if (!InternetSetOption(m_hRequest, INTERNET_OPTION_RECEIVE_TIMEOUT, &dwHttpTimeout, sizeof(DWORD)))
            {
            InternetCloseHandle(m_hRequest);
            InternetCloseHandle(m_hConnect);
            InternetCloseHandle(m_hOpen);;
            return FALSE;
            }


            //5..發送請求至HTTP服務器
            if (!HttpSendRequest(m_hRequest, NULL, 0, (char*)szData, strlen(szData)))
            {
            InternetCloseHandle(m_hRequest);
            InternetCloseHandle(m_hConnect);
            InternetCloseHandle(m_hOpen);
            return FALSE;
            }


            //6..先得到響應頭的長度(HTTP_QUERY_RAW_HEADERS_CRLF:接收所有由服務器返回的HEAD)
            DWORD dwSize = 0;
            HttpQueryInfo(m_hRequest, HTTP_QUERY_RAW_HEADERS_CRLF, NULL, &dwSize, NULL);


            //再得到響應頭的內容
            TCHAR* lpHeaders = new TCHAR[dwSize];
            if (!HttpQueryInfo(m_hRequest, HTTP_QUERY_RAW_HEADERS_CRLF, (LPVOID)lpHeaders, &dwSize, NULL))
            {
            InternetCloseHandle(m_hRequest);
            InternetCloseHandle(m_hConnect);
            InternetCloseHandle(m_hOpen);
            delete[] lpHeaders;
            return FALSE;
            }


            //7..得到"HTTP/1.1 200 OK"中的狀態碼
            TCHAR szHttpStatus[4] = { 0 };
            memcpy(szHttpStatus, lpHeaders + strlen("HTTP/1.1 "), 3 * sizeof(TCHAR)); //200,302,...
            int dwHttpStatus = atoi(szHttpStatus);
            if ((dwHttpStatus < HTTP_STATUS_OK) || (dwHttpStatus > HTTP_STATUS_AMBIGUOUS))
            {
            InternetCloseHandle(m_hRequest);
            InternetCloseHandle(m_hConnect);
            InternetCloseHandle(m_hOpen);
            delete[] lpHeaders;
            return FALSE;
            }


            //讀響應
            TCHAR szBuff[1024+1] = { 0 };
            if (!InternetReadFile(m_hRequest, szBuff, 1024, &dwSize))
            {
            InternetCloseHandle(m_hRequest);
            InternetCloseHandle(m_hConnect);
            InternetCloseHandle(m_hOpen);
            delete[] lpHeaders;
            return FALSE;
            }
            if (dwSize == 0)
            {
            InternetCloseHandle(m_hRequest);
            InternetCloseHandle(m_hConnect);
            InternetCloseHandle(m_hOpen);
            delete[] lpHeaders;
            return FALSE;
            }




            HttpQueryInfo(m_hRequest, HTTP_QUERY_RAW_HEADERS_CRLF, NULL, &dwSize, NULL);
            if (!HttpQueryInfo(m_hRequest, HTTP_QUERY_RAW_HEADERS_CRLF, (LPVOID)lpHeaders, &dwSize, NULL))
            {
            InternetCloseHandle(m_hRequest);
            InternetCloseHandle(m_hConnect);
            InternetCloseHandle(m_hOpen);
            delete[] lpHeaders;
            return FALSE;
            }


            memcpy(szHttpStatus, lpHeaders + strlen(_T("HTTP/1.1 ")), 3 * sizeof(TCHAR));
            dwHttpStatus = atoi(szHttpStatus);
            if ((dwHttpStatus < HTTP_STATUS_OK) || (dwHttpStatus > HTTP_STATUS_AMBIGUOUS))
            {
            InternetCloseHandle(m_hRequest);
            InternetCloseHandle(m_hConnect);
            InternetCloseHandle(m_hOpen);
            delete[] lpHeaders;
            return FALSE;
            }


            // MessageBox(NULL, lpHeaders, _T("lpHeaders"),  0);
            delete[] lpHeaders;
            InternetCloseHandle(m_hRequest);
            InternetCloseHandle(m_hConnect);
            InternetCloseHandle(m_hOpen);


            return TRUE;
            } @import url(http://www.shnenglu.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
            posted on 2017-05-11 18:07 聶文龍 閱讀(342) 評論(0)  編輯 收藏 引用
            国产精品激情综合久久 | 久久久久国产亚洲AV麻豆| 青青草原1769久久免费播放| 国产精品热久久无码av| 噜噜噜色噜噜噜久久| 久久99亚洲网美利坚合众国| 88久久精品无码一区二区毛片| 欧洲国产伦久久久久久久| 久久超碰97人人做人人爱| 精品国产91久久久久久久a| 午夜天堂av天堂久久久| 狠狠色丁香婷婷综合久久来来去| 人妻无码精品久久亚瑟影视| 九九久久99综合一区二区| 久久久久se色偷偷亚洲精品av | 狠狠色丁香久久婷婷综合图片| 亚洲国产欧美国产综合久久 | 精品伊人久久大线蕉色首页| 91久久精品国产成人久久| 少妇久久久久久久久久| 欧美伊人久久大香线蕉综合69 | 久久久久久久综合日本亚洲| 久久精品人人做人人爽电影| 狠狠人妻久久久久久综合蜜桃 | 26uuu久久五月天| 久久九九精品99国产精品| 久久中文字幕无码专区| 久久久久久狠狠丁香| A狠狠久久蜜臀婷色中文网| 亚洲AV无码久久| 亚洲人成精品久久久久| 久久久久久久综合狠狠综合| 久久久久人妻一区精品| 国产精品成人久久久久久久| 中文字幕亚洲综合久久2| 国产99久久久久久免费看| 久久精品国产91久久综合麻豆自制 | 精品久久久久成人码免费动漫| 日本加勒比久久精品| 久久亚洲精品无码播放| 久久精品一区二区影院|