本文整理汇总了C++中CHttpFile::Read方法的典型用法代码示例。如果您正苦于以下问题:C++ CHttpFile::Read方法的具体用法?C++ CHttpFile::Read怎么用?C++ CHttpFile::Read使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CHttpFile
的用法示例。
在下文中一共展示了CHttpFile::Read方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: pinReminder
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;
}
示例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: if
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;
}
示例4: GetPageDirect
CString GetPageDirect(CString rAddress)
{
CString szResult;
DWORD dwRet = 0; // HTTP返回码
CString strServerName, strObject;
DWORD dwSvrType;
INTERNET_PORT nPort;
const TCHAR szHeaders[] = _T("Accept: text/*\r\nUser-Agent: CInternetThread\r\n");
AfxParseURL(rAddress, dwSvrType, strServerName, strObject, nPort);
CInternetSession session("MySessionDirect");
CHttpConnection* pServer = NULL;
CHttpFile* pFile = NULL;
try
{
pServer = session.GetHttpConnection(strServerName, nPort);
pFile = pServer->OpenRequest(CHttpConnection::HTTP_VERB_GET, strObject);
pFile->AddRequestHeaders(szHeaders);
pFile->SendRequest();
pFile->QueryInfoStatusCode(dwRet);
if (dwRet < 400)
{
char szBuff[1024];
UINT nRead = pFile->Read(szBuff, 1023);
while (nRead > 0)
{
szBuff[nRead] = '\0';
szResult.Append(szBuff);
nRead = pFile->Read(szBuff, 1023);
}
}
delete pFile;
delete pServer;
}
catch (CInternetException* pEx)
{
//uiResult = 0;
}
session.Close();
return szResult;
}
示例5: 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
}
示例6: LoadList
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);
}
}
示例7: registration
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;
}
示例8:
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;
}
示例9: DownloadFile
BOOL CAutoUpdateDlg::DownloadFile(LPCTSTR lpURL,LPCTSTR lpDestFile)
{
CFile cUdpFile;
if(!cUdpFile.Open(lpDestFile,CFile::modeCreate|CFile::modeWrite|CFile::typeBinary|CFile::shareDenyWrite))
return FALSE;
BOOL bResult = FALSE;
CInternetSession sessionDownload;
try
{
CHttpFile* pFile = (CHttpFile*)sessionDownload.OpenURL(lpURL,1,INTERNET_FLAG_TRANSFER_BINARY|INTERNET_FLAG_RELOAD|INTERNET_FLAG_DONT_CACHE);
CString query = _T("");
pFile->QueryInfo(HTTP_QUERY_CONTENT_LENGTH,query);
long file_len=_ttol(query);
m_dwTotalSize = file_len;
PostMessage(WM_POSMESSAGE,0,0);
DWORD dwStatus;
if (pFile->QueryInfoStatusCode(dwStatus))
{
if (dwStatus == 200)
{
pFile->SetReadBufferSize(10240);
if (TRUE)
{
DWORD dwLen = 0;
char buf[BLOCKSIZE];
while (TRUE)
{
DWORD dwTemp = pFile->Read(buf,BLOCKSIZE);
if (dwTemp)
{
cUdpFile.Write(buf,dwTemp);
}
m_dwDownloadedSize += dwTemp;
PostMessage(WM_POSMESSAGE,0,0);
if (dwTemp < BLOCKSIZE)
{
break;
}
}
}
}
}
pFile->Close();
bResult = TRUE;
}
catch(CInternetException* pException)
{
pException->Delete();
return bResult;
}
sessionDownload.Close();
cUdpFile.Close();
return bResult;
}
示例10: sizeof
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;
}
示例11: DownLoadFile
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;
}
示例12: OnDelete
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();
}
示例13: isUpdateAvailable
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;
}
示例14: GetCompanyListFromTallyServer
/*
* 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;
}
示例15: OnBnClickedConfsubmit
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();
}