void DownloadFromInternet(System::String Url, System::String Path)
{
//创建 HttpRequest 请求对象
System::Net::HttpRequest *Request = new System::Net::HttpRequest(Url);
//内存允许情况下, 返回的指针总是可用的
if (!Request) return;
//初始化Request以适合我们的要求
Request->Method = T("GET");
Request->Timeout = 8000;
Request->UserAgent = T("RLIB Downloader/1.1");
Request->Accept = T("text/xml,application/xml,application/xhtml+xml,text/html;*/*");
Request->Headers.Add("Accept-Charset", "iso-8859-1,utf-8;q=0.7,*;q=0.7");
Request->Headers.Add("Accept-Language", "zh-cn, zh;q=1.0,en;q=0.5,en;q=0.5,en;q=0.5");
Request->Headers.Add("Accept-Encoding", "gzip, deflate, x-gzip, identity; q=0.9");
//获取远程服务器响应对象
System::Net::HttpResponse *Response = Request->GetResponse();
//判断是否出现异常
if (!Response)
{
MessageBox(NULL, Request->GetLastException()->Message, T("REQUEST ERROR"), 0);
goto FAIL;
}
if (Response->GetLastException()->Id != STATUS_SUCCESS)
{
MessageBox(NULL, Response->GetLastException()->Message, T("RESPONSE ERROR"), 0);
Response->Close();
FAIL:
delete Request;
return;
}
//这里表示成功了
System::IO::FileStream *File = System::IO::File::Create(Path, System::IO::File::CreateNewMode);
if (File)
{
File->Write(Response->GetResponseStream()->ObjectData, Response->GetResponseStream()->Length);
if (File->GetLastException()->Id != STATUS_SUCCESS)
{
MessageBox(NULL, File->GetLastException()->Message, T("FILE ERROR"), 0);
}
delete File;
}
Response->Close();
delete Request;
return;
}
///
DownloadFromInternet(T("http://rlib.googlecode.com/files/RLIBTest1.1.zip"), T("C:\\test.zip"));