程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> ActiveX Control 向Https服務器發送文件

ActiveX Control 向Https服務器發送文件

編輯:C++入門知識

1. 創建ActiveX 插件工程   1)創建CHttpConnection和CHttpFile之前對Url進行解析,判斷服務類型     [cpp]  AfxParseURL(strServerPath, dwServiceType, strServerName, strObjectName, nPort);     AfxParseURL(strServerPath, dwServiceType, strServerName, strObjectName, nPort);除了第一個參數,其它均為出口參數,dwServiceType可獲得服務類型。 2)創建CInternetSession、CHttpConnection、和打開請求獲得CHttpFile。 判斷服務類型是否為Https,如果是則需設置新的標記。       [cpp]   DWORD dwFlags = INTERNET_FLAG_DONT_CACHE;   if (AFX_INET_SERVICE_HTTPS == dwServiceType)   {           dwFlags = INTERNET_FLAG_SECURE |         INTERNET_FLAG_EXISTING_CONNECT |         INTERNET_FLAG_RELOAD |         INTERNET_FLAG_NO_CACHE_WRITE |         INTERNET_FLAG_IGNORE_CERT_DATE_INVALID |         INTERNET_FLAG_IGNORE_CERT_CN_INVALID;   }   CInternetSession mySession;   CHttpConnection *pHttpConnection = mySession.GetHttpConnection(strServerName, nPort);   CHttpFile *pHttpFile = pHttpConnection->OpenRequest(CHttpConnection::HTTP_VERB_PUT, strObjectName, NULL, 1, NULL, NULL, dwFlags);     DWORD dwFlags = INTERNET_FLAG_DONT_CACHE; if (AFX_INET_SERVICE_HTTPS == dwServiceType) {         dwFlags = INTERNET_FLAG_SECURE |   INTERNET_FLAG_EXISTING_CONNECT |   INTERNET_FLAG_RELOAD |   INTERNET_FLAG_NO_CACHE_WRITE |   INTERNET_FLAG_IGNORE_CERT_DATE_INVALID |   INTERNET_FLAG_IGNORE_CERT_CN_INVALID; } CInternetSession mySession; CHttpConnection *pHttpConnection = mySession.GetHttpConnection(strServerName, nPort); CHttpFile *pHttpFile = pHttpConnection->OpenRequest(CHttpConnection::HTTP_VERB_PUT, strObjectName, NULL, 1, NULL, NULL, dwFlags);獲取服務如果服務類型為AFX_INET_SERVICE_HTTPS,則需先獲取服務器選項,然後設置標記並設置Web服務器選項。     [cpp]   if (AFX_INET_SERVICE_HTTPS == dwServiceType)   {       // ignore the certificate        pHttpFile->QueryOption(INTERNET_OPTION_SECURITY_FLAGS, dwFlags);       dwFlags |= (SECURITY_FLAG_IGNORE_CERT_CN_INVALID |           SECURITY_FLAG_IGNORE_CERT_DATE_INVALID |           SECURITY_FLAG_IGNORE_UNKNOWN_CA  |           SECURITY_FLAG_IGNORE_WRONG_USAGE |           SECURITY_FLAG_IGNORE_REVOCATION);       // set web server option        pHttpFile->SetOption(INTERNET_OPTION_SECURITY_FLAGS, dwFlags);       if (UseHttpsSendReqEx(pHttpFile, dwPostSize, strLocalFile))       {           // 該函數向Https服務器發送本地文件strLocalFile,使用CHTTPFile::SendRequestEx()函數        }   }     if (AFX_INET_SERVICE_HTTPS == dwServiceType) {www.2cto.com // ignore the certificate pHttpFile->QueryOption(INTERNET_OPTION_SECURITY_FLAGS, dwFlags); dwFlags |= (SECURITY_FLAG_IGNORE_CERT_CN_INVALID | SECURITY_FLAG_IGNORE_CERT_DATE_INVALID | SECURITY_FLAG_IGNORE_UNKNOWN_CA  | SECURITY_FLAG_IGNORE_WRONG_USAGE | SECURITY_FLAG_IGNORE_REVOCATION); // set web server option pHttpFile->SetOption(INTERNET_OPTION_SECURITY_FLAGS, dwFlags); if (UseHttpsSendReqEx(pHttpFile, dwPostSize, strLocalFile)) { // 該函數向Https服務器發送本地文件strLocalFile,使用CHTTPFile::SendRequestEx()函數 } }  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved