CInternetFile* file = 
(CInternetFile*)session.OpenURL(url,1,INTERNET_FLAG_TRANSFER_BINARY);file.GetFileName()得到的字符串只是中间的一部分。好像太长的URL会自动截取~~

解决方案 »

  1.   

    CInternetFile间接继承CFile,而GetFileName最大返回_MAX_FNAME=256字节长度
    MFC源码:CString CFile::GetFileName() const
    {
    ASSERT_VALID(this); CFileStatus status;
    GetStatus(status);
    CString strResult;
    AfxGetFileName(status.m_szFullName, strResult.GetBuffer(_MAX_FNAME),
    _MAX_FNAME);
    strResult.ReleaseBuffer();
    return strResult;
    }
      

  2.   

    关键是不能下载文件  readlen = file->Read(buf,1024); readlen 等于0;
      

  3.   

    地址的长度如下:
    http://192.168.0.11:8888/Ebcd///GETFile.do?PATH=D%253A%255CftpFile%255C%25E9%2597%25BD%25E5%25BB%25BA%25E5%258E%25A6%25E5%259B%25BD%25E6%2596%25BD%255B2010%255D%25E6%258B%259B%25E5%25AD%2597035%25E5%258F%25B7%255CbiddingDocFolder%255C%25E6%2596%25BD%25E5%25B7%25A5%255C%25E6%258B%259B%25E6%25A0%2587%25E6%2596%2587%25E4%25BB%25B6(%25E7%25BB%258F%25E5%25AE%25A1%25E7%259A%2585%25E6%259C%2580%25E4%25BD%258E%25E6%258A%2595%25E6%25A0%2587%25E4%25BB%25B7%25E4%25B8%25AD%25E6%25A0%2587%25E5%258A%259E%25E6%25B3%2595(%25E5%2585%2588%25E8%25AF%2584%25E5%2590%258E%25E6%258A%25BD))%255C%25E7%25AC%25AC%25E5%259B%259B%25E5%258D%25B7%25E6%258A%2595%25E6%25A0%2587%25E6%2596%2587%25E5%25BB%25B6%25E6%25A0%25BC%25E5%25BC%258F%255C%25E7%25AC%25AC%25E5%2585%25AD%25E7%25AB%25A0%25E6%258A%2595%2520%25E6%25A0%2587%2520%25E6%2596%2587%2520%25E4%25BB%25B6%2520%25E6%25A0%25BC%2520%25E5%25BC%258F%255C%25E4%25B8%2580%25E3%2580%2581%25E5%2595%2586%25E5%258A%25A1%25E6%25A0%2587%25E6%258A%2595%25E6%25A0%2587%25E6%2596%2587%25E4%25BB%25B6%25E6%25A0%25BC%25E5%25BC%258F%255C17%25E8%25A7%2584%25E8%25B4%25B9%25E6%25B8%2585%25E5%258D%2595%25E8%25AE%25A1%25E4%25BB%25B7%25E8%25A1%25A8.ppt
      

  4.   

    URL长度有限制,如果需要请求的内容太长,应该改用POST方式发送请求,把长参数放到请求包的BODY里面。
      

  5.   

    同意
    也正是采用GET和POST的主要区别
      

  6.   

    get提交的大小有4k,这个应该是没有超过的!~