关于wininet如何实现自动跳转和处理默认网页?
下面是个典型的下载初始化过程,但有几个问题不太清楚,拜托高手帮忙
AnsiString HostName,FileName;
ParseURL(HostName, FileName,URL); //问题1,如果URL是"http://www.sohu.com/", 那解析出来的FileName就是空的了,HttpOpenRequest的时候就会出错,什么办呢?
try
{
// 1.建立会话
FhSession = InternetOpen("http-get-demo",
INTERNET_OPEN_TYPE_PRECONFIG,
NULL,NULL,
0);
// 同步方式
if( FhSession==NULL)
{
return false;
}
// 2.建立连接
FhConnect=InternetConnect(FhSession,
HostName.c_str(),
INTERNET_DEFAULT_HTTP_PORT,
NULL,NULL,
INTERNET_SERVICE_HTTP, 0, 0);
if(FhConnect==NULL)
{
return false;
}
// 3.初始化下载请求
const char *FAcceptTypes = "*/*";
FhRequest = HttpOpenRequest(FhConnect, //问题2,如果网页发生了跳转,就下载不了,怎么办好呢?
"GET", // 从服务器获取数据
FileName.c_str(), // 想读取的文件的名称
"HTTP/1.1", // 使用的协议
NULL,
&FAcceptTypes,
INTERNET_FLAG_RELOAD,
0);
if( FhRequest==NULL)
{
return false;
}
// 4.发送下载请求
HttpSendRequest(FhRequest, NULL, 0, NULL, 0);
}
catch(Exception &exception)
{
Release(); // 关闭连接,释放资源
}
return true;