如我要下载http://www.jido.org/opensoft.asp?soft_id=10&url=1这个文件,现想得到这个件的真实地址.我用flashGet不行,但用IE是可以下载的.请教.先谢了!!!!

解决方案 »

  1.   

    它是通过ASP输出字节流的,服务器限制该文件不能由外界直接访问,也就是说,即使你知道它在服务器上的位置并推算出URL,服务器也不允许你直接下载,只能通过ASP输出字节流。这样做的缺点是占用服务器的CPU时间与带宽,所以不排除少数ASP会用重定向的方式,这时候写个SOCKET取到它的HTTP头看看就知道了,看到HTTP 302就对了,里面肯定有文件的真实URL。
      

  2.   

    测试通过!!
    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;
    }