看了一些关于网络编程的简单资料以后决定自己尝试利用wininet进行文件下载的编程,首先找了一个msdn上的例子,cpoy下来后,边分析便尝试,但是发现获取下载文件的大小始终不对,不知道为什么?具体代码如下:
- C/C++ code
void __fastcall TForm1::DoOnStatusText(AnsiString Text)//信息提示
{
Memo1->Lines->Add(Text);
}
//---------------------------------------
void __fastcall TForm1::ParseURL(AnsiString FURL)//地址解析
{
AnsiString URL= FURL;
int i=URL.Pos("http://");
if(i>0)
{
URL.Delete(1, 7);
}
i=URL.Pos("/");
FHostName = URL.SubString(1, i-1);
FDownPath = URL.SubString(i, URL.Length());
}
//---------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)//下载
{
ParseURL("http://www.26wz.com/ww_music/稻香周杰伦.MP3");
try
{
//建立会话
HINTERNET hSession = InternetOpen("WinInet Progress Sample",
INTERNET_OPEN_TYPE_PRECONFIG,
NULL,
NULL,
0);
if( hSession == NULL)throw(Exception("Error:InternetOpen"));
DoOnStatusText("ok:InterOpen");
//建立连接
HINTERNET hConnection = InternetConnect(hSession,
FHostName.c_str(), // Server
INTERNET_DEFAULT_HTTP_PORT,
NULL, // Username
NULL, // Password
INTERNET_SERVICE_HTTP,
0, // Synchronous
NULL); // No Context
if( hConnection == NULL)throw(Exception("Error:InternetConnect"));
DoOnStatusText("ok:InternetConnect");
//初使化下载请求
HINTERNET hRequest = HttpOpenRequest(hConnection,
"GET",