如有些下载文件时的链接是http://www.xxxx.com/down.asp?id=1001
但这不是这个文件的链接地址,最终应该是http://www.xxxx.com/down/xxx.zip
请问如何通过编程取得这个文件的最终链接.先谢了!!!!
是这意思吗?
Tue May 13 07:37:01 2003 正在连接 www.xindvd.com:80
Tue May 13 07:37:01 2003 正在连接 www.xindvd.com [IP=61.152.251.10:80]
Tue May 13 07:37:01 2003 已连接.
Tue May 13 07:37:01 2003 GET /member_download2.asp?fid=764&u=13980 HTTP/1.1
Tue May 13 07:37:01 2003 Host: www.xindvd.com
Tue May 13 07:37:01 2003 Accept: */*
Tue May 13 07:37:01 2003 Referer: http://www.xindvd.com/member_download.asp?id=613
Tue May 13 07:37:01 2003 Cookie: cc%5FID=xin3000065
Tue May 13 07:37:01 2003 User-Agent: Mozilla/4.0 (compatible; MSIE 5.00; Windows 98)
Tue May 13 07:37:01 2003 Pragma: no-cache
Tue May 13 07:37:01 2003 Cache-Control: no-cache
Tue May 13 07:37:01 2003 Connection: close
Tue May 13 07:37:02 2003 HTTP/1.1 302 Object moved
Tue May 13 07:37:02 2003 Server: Microsoft-IIS/5.0
Tue May 13 07:37:02 2003 Date: Mon, 12 May 2003 23:37:51 GMT
Tue May 13 07:37:02 2003 Connection: close
Tue May 13 07:37:02 2003 Location: ftp://dsj:xin.com@202.101.42.105:8888/shediao/22.rm
Tue May 13 07:37:02 2003 Content-Length: 172
Tue May 13 07:37:02 2003 Content-Type: text/html
Tue May 13 07:37:02 2003 Set-Cookie: ASPSESSIONIDCQSQSQSQ=LANBMCGCFJJEJIIAPHHOMNFO; path=/
Tue May 13 07:37:02 2003 Cache-control: private
Tue May 13 07:37:02 2003 重定向到 ftp://dsj:xin.com@202.101.42.105:8888/shediao/22.rm
一般都是通过重定向来实现的,
你可以分析服务器传会的响应头,重定向有专门的状态吗的,你识别这个状态码,再读取响应头里面的重定向地址就可以了..不困难的.
本函数测试通过,绝对好用:
CString GetRealFileName(CString szURL)
{
CString sFileName;
CInternetSession iSession;
CStdioFile* pFileDown = iSession.OpenURL(szURL, 1, INTERNET_FLAG_TRANSFER_BINARY);
CHttpFile* pHttpFile = (CHttpFile *)pFileDown;
HINTERNET hHttpFile = HINTERNET(*pHttpFile);
if (!pHttpFile->QueryOption(INTERNET_OPTION_URL, sFileName)) sFileName=szURL;
iSession.Close();
return sFileName;
}