本文整理汇总了C++中CHttpFile类的典型用法代码示例。如果您正苦于以下问题:C++ CHttpFile类的具体用法?C++ CHttpFile怎么用?C++ CHttpFile使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了CHttpFile类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: urlGet
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) ;
}
示例2: DonwLoadFile
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;
}
示例3: GetDlgItem
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;
}
示例4: ProcessNextFileL
// --------------------------------------------------------------------------
// 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;
}
}
}
}
示例5: GetFirstGoalUrl
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;
}
示例6: ProcessResponse
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
}
示例7: GetPageText
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
}
}
示例8: request
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);
}
}
示例9: sizeof
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();
}
示例10:
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;
}
示例11: AfxParseURLEx
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;
}
示例12: AfxParseURLEx
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;
}
示例13: mySession
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;
}
示例14: FillGoalUrlVec
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;
}
示例15: strcpy
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;
}