关于使用CHttpFile

 CString strSentence, strWriteName=L"1256719104180572.jpg";
 CString strFileName=L"http://bbs.sjtu.edu.cn/file/PPPerson/" + strWriteName;
 CInternetSession sess;
 CHttpFile* fileGet;
 try
 {
  fileGet=(CHttpFile*)sess.OpenURL(strFileName,NULL,INTERNET_FLAG_TRANSFER_BINARY);
 }
 catch(CException* e)
 {
  fileGet = 0;
  throw;
 }
 if(fileGet)
 {
  DWORD dwStatus;
  DWORD dwBuffLen = sizeof(dwStatus);
   
  BOOL bSuccess = fileGet->QueryInfo(HTTP_QUERY_STATUS_CODE|HTTP_QUERY_FLAG_NUMBER, &dwStatus, &dwBuffLen);
  
  DWORD nLengthaa = 0;
  DWORD nLengthaaLength = sizeof(nLengthaa);

  fileGet->QueryInfo(HTTP_QUERY_CONTENT_LENGTH, &nLengthaa,   &nLengthaaLength);

  if( bSuccess && dwStatus>= 200&& dwStatus<300 )
  {
   DWORD nLength = fileGet->GetLength();
   //CStdioFile fileWrite;
   CFile fileWrite;
   if(fileWrite.Open(strWriteName, CFile::modeWrite|CFile::modeCreate))
   {
    BYTE* pData = new BYTE[nLength];
    fileGet->Read(pData,nLength);

    fileWrite.Write(pData,nLength);
    //while(fileGet->Read(&pData,1))
    //{
    // //fileWrite.WriteString(strSentence+L"/n");
    // fileWrite.Write(&pData,1);
    //}
    fileWrite.Close();
    AfxMessageBox(L"下载完毕");
    delete [] pData;
   }
   else
   {
    AfxMessageBox(L"本地文件"+strWriteName+L"打开出错.");
   }
  }
  else
  {
   strSentence.Format(L"打开网页文件出错,错误码:%d", dwStatus);
   AfxMessageBox(strSentence);
  }
  fileGet->Close();
  delete fileGet;
 }
 else
  AfxMessageBox(L"不能找到网页文件!");
 sess.Close();

经过测试是可以使用的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值