• <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
            <2017年5月>
            30123456
            78910111213
            14151617181920
            21222324252627
            28293031123
            45678910

            常用鏈接

            留言簿(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 聶文龍 閱讀(343) 評論(0)  編輯 收藏 引用
            一本色道久久88综合日韩精品 | 久久不见久久见免费视频7| 香蕉aa三级久久毛片| 久久中文字幕人妻熟av女| 亚洲中文字幕无码一久久区| 国产精品久久久久影院嫩草| 久久久久九九精品影院| 久久无码人妻一区二区三区午夜| 国产精品美女久久久久AV福利 | 久久人人爽人人精品视频| 2021国产精品久久精品| 亚洲综合精品香蕉久久网97| 久久丫忘忧草产品| 99久久精品免费看国产| 无码国产69精品久久久久网站| 久久久久久噜噜精品免费直播| 伊人久久大香线蕉av一区| 久久国产综合精品五月天| 91精品国产综合久久婷婷| 国产精品久久久久久久app| 色偷偷888欧美精品久久久| 精品无码久久久久国产动漫3d| 久久国产一片免费观看| 久久综合九色综合欧美狠狠| 色综合久久久久久久久五月| 人妻无码精品久久亚瑟影视| 精品久久人人妻人人做精品| 久久美女网站免费| 久久精品国产福利国产秒| 久久精品国产亚洲AV麻豆网站 | 国产人久久人人人人爽| 久久久久久久久久久久久久| 久久婷婷五月综合色99啪ak| 精品久久久久久99人妻| 国产精品99久久不卡| 国产精品久久久天天影视香蕉| 亚洲一区中文字幕久久| 久久久久香蕉视频| 久久久无码精品亚洲日韩蜜臀浪潮| 亚洲精品无码久久久久AV麻豆| 久久亚洲精品无码观看不卡|