UINT CMMSSender::PostHTTP(CString csURL, BYTE* strPostData, long lDataSize, CString csHeaders, CString& csRetHeaders, CString& csRetData) { UINT nCode=0; DWORD dwService; CString csServer; CString csPath; INTERNET_PORT nPort; CString csUser; CString csPwd; AfxParseURLEx(csURL,dwService,csServer,csPath,nPort,csUser,csPwd,0); CHttpConnection* pConnection = NULL; pConnection=m_pSession->GetHttpConnection(csServer,0, nPort, NULL, NULL); if(pConnection) { BOOL bResult=FALSE; CHttpFile* pFile = NULL; pFile=pConnection->OpenRequest(CHttpConnection::HTTP_VERB_POST,csPath,NULL,1,NULL,"HTTP/1.1",INTERNET_FLAG_NO_AUTO_REDIRECT); if(pFile) { try { bResult=pFile->SendRequest(csHeaders, strPostData, lDataSize); if(bResult) { CString csCode; pFile->QueryInfo(HTTP_QUERY_STATUS_CODE,csCode); nCode=atoi(csCode); CString csHeaders; pFile->QueryInfo(HTTP_QUERY_RAW_HEADERS_CRLF,csRetHeaders); csRetData=ReadData(pFile); } } catch(CInternetException* e) { } pFile->Close(); delete pFile; } pConnection->Close(); delete pConnection; } return nCode; }
BOOL CMainFrame::DonwLoadFile(PSTR pURL, LPSTR SaveAsFilePath) { CInternetSession session; CHttpConnection* pServer = NULL; CHttpFile * pHttpFile = NULL; CString strServerName; //去掉http:// CString strObject; INTERNET_PORT nPort; DWORD dwServiceType; DWORD dwHttpRequestFlags = INTERNET_FLAG_NO_AUTO_REDIRECT; //请求标志 const TCHAR szHeaders[]=_T("Accept: text/*\r\nUser-Agent:HttpClient\r\n"); BOOL OK=AfxParseURL( pURL, dwServiceType, strServerName, strObject, nPort ); pServer = session.GetHttpConnection(strServerName, nPort); //获得服务器名 pHttpFile = pServer-> OpenRequest( CHttpConnection::HTTP_VERB_GET, strObject, NULL, 1, NULL, NULL, dwHttpRequestFlags); pHttpFile->AddRequestHeaders(szHeaders); try { pHttpFile->SendRequest(); //发送请求 } catch (CInternetException* IE) { return false; } CStdioFile f; if( !f.Open( SaveAsFilePath, CFile::modeCreate | CFile::modeWrite | CFile::typeBinary ) ) { return false; } TCHAR szBuf[1024]; int length=0; long a=pHttpFile->GetLength(); while (length=pHttpFile->Read(szBuf, 1023)) f.Write(szBuf,length); f.Close(); pHttpFile ->Close(); pServer ->Close(); if (pHttpFile != NULL) delete pHttpFile; if (pServer != NULL) delete pServer; session.Close(); return true; }
std::string urlGet(const char* pUrl) { CInternetSession session(__argv[0]); CHttpFile *file = NULL; CString strHtml = ""; //存放网页数据 char* headers = "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1;)" ; try { file = (CHttpFile*)session.OpenURL(pUrl , 1 , INTERNET_FLAG_TRANSFER_ASCII , headers , strlen(headers)) ; } catch(CInternetException * m_pException){ file = NULL; m_pException->Delete(); session.Close(); return "" ; } CString strLine; if(file != NULL) { while(file->ReadString(strLine) != NULL) { strHtml += strLine; //strHtml +="\n" ; } file->Close(); delete file; file = NULL; } session.Close(); return std::string(strHtml) ; }
// -------------------------------------------------------------------------- // CHttpTransferBase::ProcessNextFileL() // (See comments in header file) // -------------------------------------------------------------------------- // void CHttpTransferBase::ProcessNextFileL() { // Check that there is workers available for ( TInt i = 0; i < iWorkerArray.Count(); i++ ) { if ( !iWorkerArray[i]->ProcessOnGoing() ) { CHttpFile* nextFile = NULL; nextFile = NextFile(); if ( nextFile ) { // sets the file and sets the state to EWaitingForStart iWorkerArray[i]->SetFileL( *nextFile ); // Set worker which is handled to pointer so that // if it leaves the worker can be terminated iActiveWorker = iWorkerArray[i]; iObserver->ReadyForTransferL( nextFile->Key() ); iActiveWorker = NULL; } } } }
BOOL CProxyIP::GetFirstGoalUrl(const TCHAR* pSrcUrl, TCHAR* pGoalUrl) { BOOL bRet = FALSE; CHttpFile* pHttpFile = (CHttpFile *)m_pSession->OpenURL(pSrcUrl); DWORD dwStatusCode = 0; pHttpFile->QueryInfoStatusCode(dwStatusCode); if (dwStatusCode == HTTP_STATUS_OK) { CString strData; wstring subStr = _T("国内网页http代理ip地址服务器"); while(pHttpFile->ReadString(strData)) { TCHAR mainStr[MAX_STR_LEN] = {0}; ConvertMultiByteToWideChar((char *)strData.GetBuffer(), mainStr, MAX_STR_LEN); wstring wMainStr = mainStr; if (wMainStr.find(subStr) < wMainStr.length()) { int startLoc = wMainStr.find(_T("href")); int endLoc = wMainStr.find(_T("title")); endLoc -= 2; startLoc += 6; wstring wTempUrl = wMainStr.substr(startLoc, endLoc-startLoc).c_str(); wmemcpy(pGoalUrl, wTempUrl.c_str(), wcslen(wTempUrl.c_str())+1); bRet = TRUE; break; } } } pHttpFile->Close(); delete pHttpFile; return bRet; }
bool CLoginDialog::pinReminder(){ CString username, email; int country=((CComboBox*) GetDlgItem(IDC_COUNTRY))->GetCurSel(); std::string userPhone=countries[country][1]; userPhone.erase(std::find(userPhone.begin(), userPhone.end(), '+')); userPhone.erase(std::find(userPhone.begin(), userPhone.end(), '-')); GetDlgItemText(IDC_PHONE,username); username=(CString)userPhone.c_str()+username; GetDlgItemText(IDC_EMAIL,email); std::string header = "/oneworld/forgotpin?number="; header+=(CT2CA)username; header+="&email="; header+=(CT2CA)email; CInternetSession session; CHttpConnection *pConnection = session.GetHttpConnection(_T("89.163.142.253")); char result[500]; CString request(header.c_str()); CHttpFile *pFile = pConnection->OpenRequest(1,request); if(!pFile->SendRequest()) return false; //pFile->QueryInfo(HTTP_QUERY_FLAG_REQUEST_HEADERS,result,(LPDWORD)500); #ifdef _DEBUG pFile->Read((void*)result,500); _cprintf("%s",result); #endif return true; }
UINT CGetAccountInfoRequest::ProcessResponse(CHttpFile& pHttpFile) { #ifdef ARTSTORE return 1; #else //Take the HttpFile and parse it. UINT nFileLength = pHttpFile.GetLength(); CString strBuffer; CString strSearch; CString strList; LPSTR b = strBuffer.GetBuffer(nFileLength); pHttpFile.Read(b, nFileLength); strBuffer.ReleaseBuffer(); CBasicRequestInfo::ProcessResponse(strBuffer); UINT nRet = atoi((LPCTSTR)GetStatusCode()); if(nRet == 0) //success { CString strSearch; strSearch = "Last="; ParseFileForValue(strBuffer, strSearch, GetCustLastName()); strSearch = "First="; ParseFileForValue(strBuffer, strSearch, GetCustFirstName()); strSearch = "Street1="; ParseFileForValue(strBuffer, strSearch, GetStreet1()); strSearch = "Street2="; ParseFileForValue(strBuffer, strSearch, GetStreet2()); strSearch = "City="; ParseFileForValue(strBuffer, strSearch, GetCity()); strSearch = "State="; ParseFileForValue(strBuffer, strSearch, GetState()); strSearch = "Country="; ParseFileForValue(strBuffer, strSearch, GetCountry()); strSearch = "ZipCode="; ParseFileForValue(strBuffer, strSearch, GetZipCode()); strSearch = "EMail="; ParseFileForValue(strBuffer, strSearch, GetEMail()); strSearch = "Phone="; ParseFileForValue(strBuffer, strSearch, GetPhone()); } return nRet; #endif }
ERMsg GetPageText(CHttpConnectionPtr& pConnection, const std::string& URLIn, std::string& text, bool bConvert, DWORD flags) { ERMsg msg; //std::string text; //INTERNET_FLAG_NO_COOKIES| CString URL = WBSF::convert(URLIn).c_str(); CHttpFile* pURLFile = pConnection->OpenRequest(_T("GET"), URL, NULL, 1, NULL, NULL, flags); bool bRep = false; if( pURLFile!=NULL ) { int nbTry=0; while( !bRep && msg) { TRY { nbTry++; bRep = pURLFile->SendRequest()!=0; } CATCH_ALL(e) { DWORD errnum = GetLastError(); if( errnum ==12002 ||errnum==12029) { if( nbTry >= 10) { msg = UtilWin::SYGetMessage(*e); } //try again } else if( errnum == 12031 || errnum == 12111) { //throw a exception: server reset THROW( new CInternetException(errnum)); } else if( errnum ==12003) { msg = UtilWin::SYGetMessage(*e); DWORD size = 255; TCHAR cause[256]={0}; InternetGetLastResponseInfo( &errnum, cause, &size); if (_tcslen(cause) > 0) msg.ajoute(UtilWin::ToUTF8(cause)); } else { CInternetException e(errnum); msg += UtilWin::SYGetMessage(e); } } END_CATCH_ALL } }
void Conference::LoadList(){ CListCtrl *conf= (CListCtrl*)GetDlgItem(IDC_CONFLIST); conf->DeleteAllItems(); std::string header = "/oneworld/conf_list?api_token="; header+=((CmicrosipDlg*)GetParent())->getToken(); CInternetSession session; CHttpConnection *pConnection = session.GetHttpConnection(_T("89.163.142.253")); char result[500]; CString request(header.c_str()); CHttpFile *pFile = pConnection->OpenRequest(1,request); if(!pFile->SendRequest()) return; pFile->Read((void*)result,500); char* status = strchr(result,']'); //checking if data is receive and is parseable char* eom = strchr(result,'}'); #ifdef _DEBUG _cprintf("Size: %p, %p, %d\n",result, status, (status-result)); #endif if(status==NULL) result[eom-result+1]='\0'; else if(status - result < 4998) result[status - result +2]='\0'; #ifdef _DEBUG _cprintf("Result: %s\n",result); #endif cJSON *root = cJSON_Parse(result); cJSON *msg = cJSON_GetObjectItem(root,"msg"); if((status==NULL && msg == NULL) || status-result >= 4999 ) return; else if(status==NULL) return; cJSON *data = cJSON_GetObjectItem(root,"data"); int size=cJSON_GetArraySize(root); #ifdef _DEBUG _cprintf("Size: %d\n",size); #endif size=cJSON_GetArraySize(data); #ifdef _DEBUG _cprintf("Size: %d\n",size); #endif for(int i=0;i<size;i++){ cJSON* item= cJSON_GetArrayItem(data,i); CString confNum(cJSON_GetObjectItem(item,"confno")->valuestring); CString pin(cJSON_GetObjectItem(item,"pin")->valuestring); #ifdef _DEBUG _cprintf("Item: %s\n",(CT2CA)confNum); _cprintf("Pin: %s\n",(CT2CA)pin); #endif int index = conf->InsertItem(i, confNum); conf->SetItemText(index, 1, pin); //conf->SetItemData(i, &confNum); } }
void C51JobWebPost::TestProxy() { CInternetSession session; CHttpFile *file = NULL; INTERNET_PROXY_INFO proxyinfo; proxyinfo.dwAccessType = INTERNET_OPEN_TYPE_PROXY; proxyinfo.lpszProxy ="122.205.95.14:80"; proxyinfo.lpszProxyBypass = NULL; session.SetOption(INTERNET_OPTION_PROXY,(LPVOID)&proxyinfo, sizeof(INTERNET_PROXY_INFO)); try{ file = (CHttpFile*)session.OpenURL("http://www.ip138.com/ip2city.asp",1, INTERNET_FLAG_TRANSFER_ASCII|INTERNET_FLAG_RELOAD|INTERNET_FLAG_DONT_CACHE); }catch(CInternetException * m_pException){ file = NULL; m_pException->m_dwError; m_pException->Delete(); session.Close(); AfxMessageBox("CInternetException"); return; } CString strLine; CString strResult = ""; if(file != NULL){ while(file->ReadString(strLine) != NULL){ strResult += strLine; } }else{ AfxMessageBox("fail"); } file->Close(); session.Close(); }
bool CLoginDialog::registration(){ CString phone, name, email; int country=((CComboBox*) GetDlgItem(IDC_COUNTRY))->GetCurSel(); GetDlgItemText(IDC_PHONE,phone); GetDlgItemText(IDC_NAME,name); GetDlgItemText(IDC_EMAIL,email); std::string header = "/oneworld/webreg?country="; header+=countries[country][2]; header+="&number="; header+=(CT2CA)phone; header+="&name="; header+=(CT2CA)name; header+="&email="; header+=(CT2CA)email; header+="&countrycode="; header+=countries[country][2]; CInternetSession session; CHttpConnection *pConnection = session.GetHttpConnection(_T("89.163.142.253")); char result[500]; CString request(header.c_str()); CHttpFile *pFile = pConnection->OpenRequest(1,request); if(!pFile->SendRequest()) return false; //pFile->QueryInfo(HTTP_QUERY_FLAG_REQUEST_HEADERS,result,(LPDWORD)500); #ifdef _DEBUG pFile->Read((void*)result,500); _cprintf("%s",result); #endif CString rest(result); int start=rest.Find(_T("success\":\"")); if(start<0) return false; start+=((CString)_T("success\":\"")).GetLength(); int end=rest.Find(_T("\""),start); if(end<0) return false; CString success=rest.Mid(start, end-start); #ifdef _DEBUG _cprintf("%s",(CT2CA)success); _cprintf("%s",result); #endif start=rest.Find(_T("msg\":\"")); start+=((CString)_T("msg\":\"")).GetLength(); end=rest.Find(_T("\""),start); CString msg=rest.Mid(start, end-start); SetDlgItemText(IDC_LOGTEXT,msg); Sleep(2000); return true; }
int CXCCRA2MapUpdaterApp::update() { int error = 0; try { CWaitCursor wait; CInternetSession is; CHttpFile* f = reinterpret_cast<CHttpFile*>(is.OpenURL("http://xccu.sourceforge.net/ra2_maps/official.ucf")); if (!f) error = 1; else { string s; while (1) { int cb_p = f->GetLength(); if (!cb_p) break; char* p = new char[cb_p + 1]; f->Read(p, cb_p); p[cb_p] = 0; s += p; delete[] p; } f->Close(); Cvirtual_tfile f; f.load_data(Cvirtual_binary(s.c_str(), s.length())); while (!f.eof()) { Cmulti_line l = f.read_line(); Cfname fname = xcc_dirs::get_dir(game_ra2) + l.get_next_line('=') + ".mmx"; if (!fname.exists()) { string version = l.get_next_line(','); string link = l.get_next_line(','); error = download_update(link, fname); if (error) { delete_file(fname); MessageBox(NULL, "Error retrieving update.", NULL, MB_ICONERROR); error = 0; } } } } } catch (CInternetException*) { error = 1; } if (error) MessageBox(NULL, "Error querying for update.", NULL, MB_ICONERROR); return error; }
UINT CCopiagenda::GetHTTPS(CString csURL, CString csHeaders, CString& csRetHeaders, CString& csRetData) { UINT nCode; DWORD dwService; CString csServer; CString csPath; INTERNET_PORT nPort; CString csUser; CString csPwd; AfxParseURLEx(csURL,dwService,csServer,csPath,nPort,csUser,csPwd,0); CHttpConnection* pConnection = NULL; pConnection=m_pSession->GetHttpConnection(csServer,INTERNET_FLAG_RELOAD|INTERNET_FLAG_DONT_CACHE|INTERNET_FLAG_KEEP_CONNECTION|INTERNET_FLAG_SECURE,nPort, NULL, NULL); if(pConnection) { BOOL bResult=FALSE; CHttpFile* pFile = NULL; pFile=pConnection->OpenRequest(CHttpConnection::HTTP_VERB_GET,csPath,NULL,1,NULL,"HTTP/1.1",INTERNET_FLAG_EXISTING_CONNECT|INTERNET_FLAG_RELOAD|INTERNET_FLAG_DONT_CACHE|INTERNET_FLAG_KEEP_CONNECTION|INTERNET_FLAG_NO_AUTO_REDIRECT|INTERNET_FLAG_SECURE); if(pFile) { try { bResult=pFile->SendRequest(csHeaders, NULL, 0); if(bResult) { CString csCode; pFile->QueryInfo(HTTP_QUERY_STATUS_CODE,csCode); nCode=atoi(csCode); pFile->QueryInfo(HTTP_QUERY_RAW_HEADERS_CRLF,csRetHeaders); csRetData=ReadData(pFile); } } catch(CInternetException* e) { } pFile->Close(); delete pFile; } pConnection->Close(); delete pConnection; } return nCode; }
CString CUpdateApp::GetWebStieHtml(CString strUrl) { CInternetSession mySession(NULL,0); CHttpFile* myHttpFile = NULL; myHttpFile = (CHttpFile*)mySession.OpenURL(strUrl);//str是要打开的地址 CString myData; CString csHtmlContent; while(myHttpFile->ReadString(myData)) { csHtmlContent += myData; } return csHtmlContent; }
BOOL CProxyIP::FillGoalUrlVec(const TCHAR* pFirstGoalUrl) { BOOL bRet = FALSE; int totalPage = 0; CHttpFile* pHttpFile = (CHttpFile *)m_pSession->OpenURL(pFirstGoalUrl); DWORD dwStatusCode = 0; pHttpFile->QueryInfoStatusCode(dwStatusCode); if (dwStatusCode == HTTP_STATUS_OK) { BOOL bCheck = FALSE; CString strData; wstring subStrPage = _T("class=\"pagelist\""); while(pHttpFile->ReadString(strData)) { TCHAR mainStr[MAX_STR_LEN] = {0}; ConvertMultiByteToWideChar((char *)strData.GetBuffer(), mainStr, MAX_STR_LEN); wstring wMainStr = mainStr; if (bCheck) { int lenn = wMainStr.find(_T("共")); wstring wsPage = wMainStr.substr(lenn+1, 1).c_str(); totalPage = _wtoi(wsPage.c_str()); bCheck = FALSE; break; } if (wMainStr.find(subStrPage) < wMainStr.length()) { bCheck = TRUE; } } wstring strGoalUrl = pFirstGoalUrl; int lenHtml = strGoalUrl.find(_T(".html")); wstring newStrGoalUrl = strGoalUrl.substr(0, lenHtml); for (int j = 2; j <= totalPage; j++) { TCHAR tChar[MAX_URL_LEN] = {0}; swprintf(tChar, MAX_URL_LEN, _T("%s_%d.html"), newStrGoalUrl.c_str(), j); m_goalUrlVec.push_back(tChar); } bRet = TRUE; } pHttpFile->Close(); delete pHttpFile; return bRet; }
CString C51JobWebPost::GeHttptFile(const char *url) { CString szContent; char strProxyList[MAX_PATH], strUsername[64], strPassword[64]; //in this case "proxya" is the proxy server name, "8080" is its port strcpy(strProxyList, "125.41.181.59:8080"); strcpy(strUsername, "myusername"); strcpy(strPassword, "mypassword"); DWORD dwServiceType = AFX_INET_SERVICE_HTTP; CString szServer, szObject; INTERNET_PORT nPort; AfxParseURL(url, dwServiceType, szServer, szObject, nPort); CInternetSession mysession; CHttpConnection* pConnection; CHttpFile* pHttpFile; INTERNET_PROXY_INFO proxyinfo; proxyinfo.dwAccessType = INTERNET_OPEN_TYPE_PROXY; proxyinfo.lpszProxy = strProxyList; proxyinfo.lpszProxyBypass = NULL; mysession.SetOption(INTERNET_OPTION_PROXY, (LPVOID)&proxyinfo, sizeof(INTERNET_PROXY_INFO)); pConnection = mysession.GetHttpConnection("125.41.181.59", INTERNET_FLAG_KEEP_CONNECTION, 8080, NULL, NULL); pHttpFile = pConnection->OpenRequest("GET",url, NULL, 0, NULL, NULL, INTERNET_FLAG_KEEP_CONNECTION); //here for proxy //pHttpFile->SetOption(INTERNET_OPTION_PROXY_USERNAME, strUsername, strlen(strUsername)+1); //pHttpFile->SetOption(INTERNET_OPTION_PROXY_PASSWORD, strPassword, strlen(strPassword)+1); pHttpFile->SendRequest(NULL); DWORD nFileSize = pHttpFile->GetLength(); LPSTR rbuf = szContent.GetBuffer(nFileSize); UINT uBytesRead = pHttpFile->Read(rbuf, nFileSize); szContent.ReleaseBuffer(); pHttpFile->Close(); delete pHttpFile; pConnection->Close(); delete pConnection; mysession.Close(); return szContent; }
bool CDlgView::DownLoadFile(const string&UrpPath ,const string& strFilePath) { CInternetSession session; std::string strHtml; try { CHttpFile* pfile = (CHttpFile*)session.OpenURL(UrpPath.c_str(),1,INTERNET_FLAG_TRANSFER_ASCII|INTERNET_FLAG_RELOAD,NULL,0); DWORD dwStatusCode; pfile->QueryInfoStatusCode(dwStatusCode); if(dwStatusCode == HTTP_STATUS_OK) { char strBuff[1025] = {0}; while ((pfile->Read((void*)strBuff, 1024)) > 0) { strHtml += strBuff; } } else { return false; } pfile->Close(); delete pfile; session.Close(); } catch (CException* e) { e;//消除警告 return false; } if (!strHtml.empty()) { ofstream outfile(strFilePath); if (!outfile.is_open()) { return false; } outfile<<strHtml; outfile.close(); } return true; }
void Conference::OnDelete() { CListCtrl *list= (CListCtrl*)GetDlgItem(IDC_CONFLIST); POSITION pos = list->GetFirstSelectedItemPosition(); CString confNum; if (pos) { int i = list->GetNextSelectedItem(pos); //Call *pCall = (Call *) list->GetItemData(i); confNum=list->GetItemText(i,0); } if(confNum.GetLength()==0) return; std::string header = "/oneworld/conf_del?api_token="; header+=((CmicrosipDlg*)GetParent())->getToken(); header+="&confno="; header+=(CT2CA)confNum; #ifdef _DEBUG _cprintf("Request: %s\n",header); #endif CInternetSession session; CHttpConnection *pConnection = session.GetHttpConnection(_T("89.163.142.253")); char result[500]; CString request(header.c_str()); CHttpFile *pFile = pConnection->OpenRequest(1,request); if(!pFile->SendRequest()) return; pFile->Read((void*)result,500); char* status = strchr(result,']'); //checking if data is receive and is parseable char* eom = strchr(result,'}'); #ifdef _DEBUG _cprintf("Size: %p, %p, %d\n",result, status, (status-result)); #endif if(status==NULL) result[eom-result+1]='\0'; else if(status - result < 498) result[status - result +2]='\0'; #ifdef _DEBUG _cprintf("Result: %s\n",result); #endif LoadList(); }
/* =================================================================== * GET Tally TB Response for a given request * =================================================================== */ BOOL CTallyExporterDlg::GetTallyTBResponse(CString& xmlTBRequestRef,vector<string>& allRowsOfTBRef, int port) { CInternetSession session(_T("TB Session")); CHttpConnection* pServer = NULL; CHttpFile* pFile = NULL; try { CString strServerName; DWORD dwRet = 0; CString strHeaders = _T("Content-Type: application/x-www-form-urlencoded;Accept-Encoding: gzip,deflate"); CString acceptedTypes[] = {_T("text/html")}; pServer = session.GetHttpConnection(_T("localhost"),NULL, port, NULL, NULL); pFile = pServer->OpenRequest(CHttpConnection::HTTP_VERB_POST, _T(""), NULL,1,(LPCTSTR*)acceptedTypes,NULL,INTERNET_FLAG_EXISTING_CONNECT); pFile->SendRequest(strHeaders, (LPVOID)(LPCTSTR)xmlTBRequestRef, xmlTBRequestRef.GetLength()); pFile->QueryInfoStatusCode(dwRet); CString csvLinesToBeRead; CString& csvLinesToBeReadRef = csvLinesToBeRead; if (dwRet == HTTP_STATUS_OK) { while (pFile->ReadString(csvLinesToBeReadRef) == TRUE) { allRowsOfTBRef.push_back((LPCTSTR)csvLinesToBeReadRef); } } else { //Do something as server is not sending response as expected. } delete pFile; delete pServer; } catch (CInternetException* pEx) { //catch errors from WinInet TCHAR pszError[64]; pEx->GetErrorMessage(pszError, 64); _tprintf_s(_T("%63s"), pszError); } session.Close(); return false; }
/* * Connect to the Tally over a specific port and get all the companies */ BOOL CTallyExporterDlg::GetCompanyListFromTallyServer(int port, CompanyListResponse& companyListResponseRef) { CInternetSession session(_T("My Session")); CHttpConnection* pServer = NULL; CHttpFile* pFile = NULL; try { CString strServerName; DWORD dwRet = 0; CString strParam = "<ENVELOPE><HEADER><TALLYREQUEST>Export Data</TALLYREQUEST></HEADER><BODY><EXPORTDATA><REQUESTDESC><REPORTNAME>List of Companies</REPORTNAME></REQUESTDESC></EXPORTDATA></BODY></ENVELOPE>"; CString strHeaders = _T("Content-Type: application/x-www-form-urlencoded;Accept-Encoding: gzip,deflate"); CString acceptedTypes[] = {_T("text/html")}; pServer = session.GetHttpConnection(_T("localhost"),NULL, port, NULL, NULL); pFile = pServer->OpenRequest(CHttpConnection::HTTP_VERB_POST, _T(""), NULL,1,(LPCTSTR*)acceptedTypes,NULL,INTERNET_FLAG_EXISTING_CONNECT); pFile->SendRequest(strHeaders, (LPVOID)(LPCTSTR)strParam, strParam.GetLength()); pFile->QueryInfoStatusCode(dwRet); if (dwRet == HTTP_STATUS_OK) { CHAR szBuff[1024]; while (pFile->Read(szBuff, 1024) > 0) { printf_s("%1023s", szBuff); } GetCompanyListFromCSVResponse(companyListResponseRef, szBuff); } else { //Do something as server is not sending response as expected. } delete pFile; delete pServer; } catch (CInternetException* pEx) { //catch errors from WinInet TCHAR pszError[64]; pEx->GetErrorMessage(pszError, 64); _tprintf_s(_T("%63s"), pszError); } session.Close(); return false; }
Update_Status UpdateChecker::isUpdateAvailable(const Version& currentVersion) { Update_Status updateAvailable = UPDATER_LATEST_STABLE; try { CInternetSession internet; CHttpFile* versionFile = (CHttpFile*) internet.OpenURL(versionFileURL, 1, INTERNET_FLAG_TRANSFER_ASCII | INTERNET_FLAG_DONT_CACHE | INTERNET_FLAG_RELOAD, NULL, 0); if (versionFile) { CString latestVersionStr; char buffer[101]; UINT br = 0; while ((br = versionFile->Read(buffer, 50)) > 0) { buffer[br] = '\0'; latestVersionStr += buffer; } if (!parseVersion(latestVersionStr)) { updateAvailable = UPDATER_ERROR; } else { int comp = compareVersion(currentVersion, latestVersion); if (comp < 0) { updateAvailable = UPDATER_UPDATE_AVAILABLE; } else if (comp > 0) { updateAvailable = UPDATER_NEWER_VERSION; } } delete versionFile; } else { updateAvailable = UPDATER_ERROR; } } catch (CInternetException* pEx) { updateAvailable = UPDATER_ERROR; pEx->Delete(); } return updateAvailable; }
int CXCCRA2MapUpdaterApp::download_update(string link, string fname) { int error = 0; CInternetSession is; CHttpFile* f = reinterpret_cast<CHttpFile*>(is.OpenURL(link.c_str(), INTERNET_FLAG_TRANSFER_BINARY)); if (!f) error = 1; else { Cvirtual_file h; DWORD status; if (!f->QueryInfoStatusCode(status)) error = 2; else if (status != 200) error = 3; else { int total_size = f->Seek(0, CFile::end); f->Seek(0, CFile::begin); Cdownload_dlg dlg; dlg.set(link, fname, total_size); dlg.Create(Cdownload_dlg::IDD, NULL); dlg.EnableWindow(false); Cvirtual_binary t; while (!error) { int cb_p = min<int>(f->GetLength(), 1 << 10); if (!cb_p) break; f->Read(t.write_start(cb_p), cb_p); h.write(t); dlg.set_size(h.size()); dlg.UpdateWindow(); } h.compact(); Cxif_key k; if (k.load_key(h.data(), h.size())) error = 5; else { for (t_xif_key_map::const_iterator ki = k.m_keys.begin(); ki != k.m_keys.end(); ki++) { if (error) break; const Cxif_key& l = ki->second; string fext = boost::to_lower_copy(Cfname(l.get_value_string(vi_fname)).get_fext()); if (fext != ".mmx" && (fext != ".yro") || !Cfname(xcc_dirs::get_exe(game_ra2_yr)).exists()) continue; if (file32_write(Cfname(fname).get_path() + l.get_value_string(vi_fname), l.get_value(vi_fdata).get_data(), l.get_value(vi_fdata).get_size())) error = 6; } } dlg.DestroyWindow(); } f->Close(); } return error; }
BOOL CProxyIP::FillIpVec() { int i = 0; for (i = 0; i < m_goalUrlVec.size(); i++) { CHttpFile* pHttpFile = (CHttpFile *)m_pSession->OpenURL(m_goalUrlVec[i].c_str()); DWORD dwStatusCode = 0; pHttpFile->QueryInfoStatusCode(dwStatusCode); if (dwStatusCode == HTTP_STATUS_OK) { BOOL bCheck = FALSE; CString strData; wstring subStr = _T("class=\"cont_ad\""); while(pHttpFile->ReadString(strData)) { TCHAR mainStr[MAX_STR_LEN] = {0}; ConvertMultiByteToWideChar((char *)strData.GetBuffer(), mainStr, MAX_STR_LEN); wstring wMainStr = mainStr; if (bCheck) { if (wMainStr.find(_T("</span>")) < wMainStr.length()) { break; } TCHAR firstPosChar = wMainStr.at(0); if (firstPosChar < 48 || firstPosChar > 57) { continue; } m_IpVec.push_back(wMainStr); m_totalIp++; } if (wMainStr.find(subStr) < wMainStr.length()) { bCheck = TRUE; } } } pHttpFile->Close(); delete pHttpFile; } return TRUE; }
bool CWebpageHandler::GetSourceHtml(CString theUrl,CString fileName) { CInternetSession session; CHttpFile *file = NULL; CString strURL = theUrl; CString strHtml = _T(""); //存放网页数据 try{ file = (CHttpFile*)session.OpenURL(strURL); }catch(CInternetException * m_pException){ file = NULL; m_pException->m_dwError; m_pException->Delete(); session.Close(); MessageBox(_T("网络连接失败!")); return false; } CString strLine; if(file != NULL){ while(file->ReadString(strLine) != NULL){ strHtml += strLine; } }else{ MessageBox(_T("读取网络数据失败!")); return false; } CFile file0(fileName, CFile::modeCreate|CFile::modeWrite); int len = strHtml.GetLength()*2; file0.Write(strHtml, len); session.Close(); file->Close(); file0.Close(); delete file; file = NULL; m_htmlStr = strHtml; m_url = theUrl; return true; }
CString StockRetriever::GetStockInfo(CString url) { CInternetSession inter_session; CString strHtml; CHttpFile* file =NULL; try{ file = (CHttpFile*)inter_session.OpenURL(url); }catch(CInternetException * m_pException){ file = NULL; m_pException->m_dwError; m_pException->Delete(); inter_session.Close(); return ""; //AfxMessageBox("CInternetException"); } CString strLine; if(file != NULL){ while(file->ReadString(strLine) != NULL){ strHtml += strLine; } }else{ return ""; //AfxMessageBox("fail"); } inter_session.Close(); file->Close(); delete file; file = NULL; int start = strHtml.Find('"'); int end = strHtml.Find('"', start+1); //ASSERT( end > start+1 ); if ( ! (end > start+1 && start >0 )) return ""; CString ret = strHtml.Mid(start+1, end-start-1); return ret; }
string GetHtmlSource(CString strURL) { CInternetSession session; CHttpFile *file = NULL; CString strHtml = _T(""); //存放网页数据 file =(CHttpFile*)session.OpenURL(strURL,1,INTERNET_FLAG_RELOAD); //CString strLine; char sRecived[1024]; if(file != NULL) { while(file->ReadString((LPTSTR)sRecived,1024)!=NULL) { strHtml += sRecived; } } session.Close(); if(file!=NULL) file->Close(); delete file; file = NULL; string html = CT2A(strHtml.GetBuffer(0)); return html; }
AINIKU_API CString getUrl2(CString url) { if (url == "") { return ""; } CInternetSession mySession((LPCTSTR)"aaa", 0);//如果不指定aaa(随便的一个字符串)的话debug模式下会报错 CHttpFile* htmlFile = NULL; CString str, strHtml; TRY{ htmlFile = (CHttpFile*)mySession.OpenURL(url);//打开连接 while (htmlFile->ReadString(str)) { char *pStr = (char*)str.GetBuffer(str.GetLength()); //取得str对象的原始字符串 int nBufferSize = MultiByteToWideChar(CP_UTF8, 0, pStr, -1, NULL, 0); //取得所需缓存的多少 wchar_t *pBuffer = (wchar_t*)malloc(nBufferSize * sizeof(wchar_t));//申请缓存空间 MultiByteToWideChar(CP_UTF8, 0, pStr, -1, pBuffer, nBufferSize*sizeof(wchar_t));//转码 strHtml += pBuffer; free(pBuffer); //释放缓存 } return strHtml; }CATCH(CException, e){ TCHAR err[1024]; e->GetErrorMessage(err, 1024); return ""; }
void Conference::OnBnClickedConfsubmit() { std::string header = "/oneworld/conf_create?api_token="; header+=((CmicrosipDlg*)GetParent())->getToken(); header+="&pin="; CString pinNum; GetDlgItemText(IDC_CONFPIN,pinNum); header+=(CT2CA)pinNum; header+="&length=0"; CInternetSession session; CHttpConnection *pConnection = session.GetHttpConnection(_T("89.163.142.253")); char result[500]; CString request(header.c_str()); CHttpFile *pFile = pConnection->OpenRequest(1,request); if(!pFile->SendRequest()) return; pFile->Read((void*)result,500); char* status = strchr(result,']'); //checking if data is receive and is parseable char* eom = strchr(result,'}'); #ifdef _DEBUG _cprintf("Size: %p, %p, %d\n",result, status, (status-result)); #endif if(status==NULL) result[eom-result+1]='\0'; else if(status - result < 498) result[status - result +2]='\0'; #ifdef _DEBUG _cprintf("Result: %s\n",result); #endif cJSON *root = cJSON_Parse(result); cJSON *success = cJSON_GetObjectItem(root,"success"); #ifdef _DEBUG _cprintf("Success: %s\n",success->valuestring); #endif LoadList(); }
void CHttpPostDlg::OnBtnSendpost() { CInternetSession m_InetSession(_T("session"), 0, INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, INTERNET_FLAG_DONT_CACHE); //设置不缓冲 CHttpConnection* pServer = NULL; CHttpFile* pFile = NULL; CString strHtml = ""; CString ActionServer = _T("www.cqjg.gov.cn"); CString strRequest = _T("LicenseTxt=AG8091&VIN=LJDAAA21560205432"); //POST过去的数据 CString strHeaders = "Accept: text*/*\r\nContent-Type: application/x-www-form-urlencoded\r\nUser-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Maxthon;"; int nRead = 0; try { INTERNET_PORT nPort = 80; //端口 pServer = m_InetSession.GetHttpConnection(ActionServer, nPort); pFile = pServer->OpenRequest(CHttpConnection::HTTP_VERB_POST,"/netcar/FindOne.aspx"); pFile->AddRequestHeaders(strHeaders); pFile->SendRequestEx(strRequest.GetLength()); pFile->WriteString(strRequest); //重要-->m_Request 中有"name=aaa&name2=BBB&..." pFile->EndRequest(); DWORD dwRet; pFile->QueryInfoStatusCode(dwRet); if (dwRet == HTTP_STATUS_OK) { CString strLine; while ((nRead = pFile->ReadString(strLine))>0) { strHtml += strLine + "\n";; } } int pos = strHtml.Find(_T("<li class=\"lithreeC\">")); if(pos != -1) { CString Value = strHtml.Mid(pos,500); CFile file("test.html",CFile::modeCreate|CFile::modeWrite); file.WriteHuge(Value.GetBuffer(0),Value.GetLength()); file.Close(); //MessageBox(Value); } delete pFile; delete pServer; } catch (CInternetException* e) { char strErrorBuf[255]; e->GetErrorMessage(strErrorBuf,255,NULL); AfxMessageBox(strErrorBuf,MB_ICONINFORMATION); } // SendPost(); }
// Downloads the file at the given URL and returns the size of that file. CString GetHttpFile(CInternetSession& session, const CString& strUrl) { CString strResult; // Reads data from an HTTP server. CHttpFile* pHttpFile = NULL; try { // Open URL. pHttpFile = (CHttpFile*)session.OpenURL(strUrl, 1, INTERNET_FLAG_TRANSFER_ASCII | INTERNET_FLAG_RELOAD | INTERNET_FLAG_DONT_CACHE); // Read the file. if(pHttpFile != NULL) { UINT uiBytesRead; do { char chBuffer[10000]; uiBytesRead = pHttpFile->Read(chBuffer, sizeof(chBuffer)); strResult += chBuffer; } while (uiBytesRead > 0); } } catch (CInternetException) { // TODO: Handle exception } // Clean up and return. delete pHttpFile; return strResult; }