请教怎么打开一个web页并得到返回值,CFile吗
请问如何打开一个web页并得到返回值,CFile吗?
CFile file;
file.open( "http://...... ",0);
这样不行.
有别的办法吗?
------解决方案--------------------
void CDlgDlg::OnBnClickedButton2()
{
//GetUrlSource( "http://www.163.com ");
// TODO: Add your control notification handler code here
CString m_theUrl = _T( "http://www.163.com "/* "file://C:/cmd.txt "*/);
CString filename( "1.htm ");
CInternetSession session;
CString url = m_theUrl;
//url += filename;
CInternetFile* file =
(CInternetFile*)session.OpenURL(url,1,INTERNET_FLAG_TRANSFER_BINARY);
if(file == NULL)
{
file-> Close();
delete file;
session.Close();
MessageBox(_T( "下载文件失败!\n\n错误代码:1 "),_T( "提示 "),MB_ICONERROR);
return;
}
CString name = filename;
CFile file1;
if(file1.Open(name,CFile::modeCreate|CFile::modeWrite|CFile::typeBinary,NULL))
{
int readlen = -1;
char buf[1024];
while(1)
{
//char* buf = new char[1024];
readlen = file-> Read(buf,1024);
if(readlen == 0)
{
//delete buf;
break;
}
file1.Write(buf,readlen);
//delete buf;
ZeroMemory(buf,1024);
}
file1.Close();
}
else
{
MessageBox(_T( "下载文件失败!\n\n错误代码:2 "),_T( "提示 "),MB_ICONERROR);
file-> Close();
delete file;
session.Close();
return;
}
file-> Close();
delete file;
session.Close();
//CDialog::OnOK();
}
CFile file;
file.open( "http://...... ",0);
这样不行.
有别的办法吗?
------解决方案--------------------
void CDlgDlg::OnBnClickedButton2()
{
//GetUrlSource( "http://www.163.com ");
// TODO: Add your control notification handler code here
CString m_theUrl = _T( "http://www.163.com "/* "file://C:/cmd.txt "*/);
CString filename( "1.htm ");
CInternetSession session;
CString url = m_theUrl;
//url += filename;
CInternetFile* file =
(CInternetFile*)session.OpenURL(url,1,INTERNET_FLAG_TRANSFER_BINARY);
if(file == NULL)
{
file-> Close();
delete file;
session.Close();
MessageBox(_T( "下载文件失败!\n\n错误代码:1 "),_T( "提示 "),MB_ICONERROR);
return;
}
CString name = filename;
CFile file1;
if(file1.Open(name,CFile::modeCreate|CFile::modeWrite|CFile::typeBinary,NULL))
{
int readlen = -1;
char buf[1024];
while(1)
{
//char* buf = new char[1024];
readlen = file-> Read(buf,1024);
if(readlen == 0)
{
//delete buf;
break;
}
file1.Write(buf,readlen);
//delete buf;
ZeroMemory(buf,1024);
}
file1.Close();
}
else
{
MessageBox(_T( "下载文件失败!\n\n错误代码:2 "),_T( "提示 "),MB_ICONERROR);
file-> Close();
delete file;
session.Close();
return;
}
file-> Close();
delete file;
session.Close();
//CDialog::OnOK();
}