如下代码
CInternetSession session;
CInternetFile* file=NULL;
try
{
file=(CInternetFile*)session.OpenURL(strUrl);
}
catch(CInternetException* pEx)
{
file=NULL;
pEx->Delete();
return FALSE ;
}当页面不存在时,OpenUrl仍将返回一个页面,提示"无法找到网页" HTTP 404 - 无法找到文件。我的问题 :不解析返回的文本,我怎么才能知道当前页面是不存在的?谢谢
CInternetSession session;
CInternetFile* file=NULL;
try
{
file=(CInternetFile*)session.OpenURL(strUrl);
}
catch(CInternetException* pEx)
{
file=NULL;
pEx->Delete();
return FALSE ;
}当页面不存在时,OpenUrl仍将返回一个页面,提示"无法找到网页" HTTP 404 - 无法找到文件。我的问题 :不解析返回的文本,我怎么才能知道当前页面是不存在的?谢谢
解决方案 »
- VC++6.0/Visual C++ 6.0与Microsoft Visual Studio.Net 2005/2008的区别
- 为什么一个MFC DLL 在Debug模式下运行会出错,但是在Release模式下可以正常运行?
- 请教了,在VC下,如何把List Box 变为 CheckListBox来用?谢谢,给出详细的代码最好
- 如何調用不同調用約定的dll?
- vc++2005编译的代码大部分被转换为托管代码?
- 简单问题求教
- 谁有jpeg2000源代码,急求!!
- FTP问题???请教高手。。。
- 如何指定对话框显示的位置, 100分
- 有些网站提供网上寻呼服务, 即向CLLL 机或手机发信息,请问能不能在程序中实现??
- 为什么打印的时候颜色会发生变化?
- 请问如何编EXE程序调用已有的DLL---------急~!!!!!!!!!
DWORD dwStatusCode ;
((CHttpFile*)file)->QueryInfoStatusCode(dwStatusCode) ; // 对于 http 连接,dwStatusCode 中放的是错误码
// 200 : OK Action complete successfully
// 404 : Not Found The requested file was not found. 但是这种代码写到程序里就太过分了,寻求更好的解决办法。
CHttpFile* pHttpFile = (static_cast<CHttpFile*>(file)) ;
pHttpFile->QueryInfoStatusCode(dwStatusCode) ;
不知道 new 会不会抛出异常 :(#include <afxinet.h>
BOOL TryHttpUrl(CString strHttpUrl , CString strLocalFileName )
{
CInternetSession session;
CHttpFile* pHttpFile = NULL;
try
{
pHttpFile = static_cast<CHttpFile*>(session.OpenURL(strHttpUrl));
if( !pHttpFile )
return FALSE ;
}
catch(CInternetException* pEx)
{
pEx->Delete();
return FALSE ;
}
//
DWORD dwStatusCode ;
pHttpFile->QueryInfoStatusCode(dwStatusCode) ;
if( 200 != dwStatusCode )
{
pHttpFile->Close() ;
delete pHttpFile ;
return FALSE ;
}
//
try
{
CFile newFile;
newFile.Open(strLocalFileName,CFile::modeCreate | CFile::modeWrite);
newFile.SetLength( pHttpFile->GetLength() ) ; const int buffer_size = 1024 ;
int num = buffer_size ;
char *buffer = new char[buffer_size] ;
while( buffer_size == num )
{
num = pHttpFile->Read(buffer,buffer_size) ;
newFile.Write(buffer,num) ;
}
delete []buffer ;
newFile.Close() ;
}
catch(CInternetException *e)
{
e->Delete() ;
pHttpFile->Close() ;
delete pHttpFile ;
return FALSE ;
}
catch(CFileException *e)
{
e->Delete() ;
pHttpFile->Close() ;
delete pHttpFile ;
return FALSE ;
}
catch(...)
{
ASSERT(0) ;
pHttpFile->Close() ;
delete pHttpFile ;
return FALSE ;
} pHttpFile->Close();
delete pHttpFile ;
return TRUE ;
}
newFile.SetLength( pHttpFile->GetLength() ) ;
SeekToBegin( );
newFile.SeekToBegin( );
{
num = pHttpFile->Read(buffer,buffer_size) ;
newFile.Write(buffer,num) ;
}