• <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://m.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)  編輯 收藏 引用
            日韩乱码人妻无码中文字幕久久 | 久久影院午夜理论片无码| 久久国产免费直播| 亚洲欧洲精品成人久久奇米网| 青青热久久综合网伊人| 亚洲成色999久久网站| 欧洲人妻丰满av无码久久不卡| 久久99热只有频精品8| 久久精品成人影院| 精品久久久久久无码人妻热| 久久精品卫校国产小美女| 国产成人久久777777| 99久久精品日本一区二区免费| 无码任你躁久久久久久久| 日韩亚洲欧美久久久www综合网| 无码久久精品国产亚洲Av影片 | 亚洲乱亚洲乱淫久久| 国产精品久久久久jk制服| 国产∨亚洲V天堂无码久久久| 91久久精品91久久性色| 久久免费视频网站| 亚洲精品NV久久久久久久久久| 一本色道久久综合狠狠躁篇| 久久久av波多野一区二区| 久久婷婷综合中文字幕| 久久强奷乱码老熟女| 亚洲乱码中文字幕久久孕妇黑人| 国产精品视频久久久| 欧美国产精品久久高清| 奇米影视7777久久精品| 久久综合久久鬼色| 久久精品九九亚洲精品天堂| 午夜福利91久久福利| 国产精品久久亚洲不卡动漫| 一本大道久久东京热无码AV| 国产精品免费福利久久| 久久91精品国产91久| 伊人热人久久中文字幕| 亚洲伊人久久精品影院| 久久香蕉国产线看观看猫咪?v| 国产精品久久国产精麻豆99网站|