使用WinInet类的学习体会

王朝vc·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

下列代码摘录示范了如何创建一个简单的浏览器、下载一张网页、通过FTP操作一个文件和查找一个Gopher文件。它们并不是一个完整的例子,其中不包含异常处理,只是本人最近写程序的一点总结而已。

1 创建一个非常简单的浏览器

#include <afxinet.h>

file://假设URL的名字已经被初始化了

CInternetSession session("My Session");

CStdioFile* pFile=NULL;

file://使用一个URL,并显示一张网页

while(lpszURL=DisplayPage(...))

{

pFile=session.OpenURL(lpszURL);

while(pFile->Read(szBuff,1024)>0)

{

file://读取文件...

}

delete pFile;

}

session.Close();

2 下载一张网页

#include <afxinet.h>

file://假设服务器、端口号和URL名字已经初始化了

CInternetSession session("My Session");

CHttpConnection* pSever=NULL;

CHttpFile* pFile=NULL;

try

{

CString strServerName;

INTERNET_PORT nPort;

pServer=session.GetHttpConnection(strServerName,nPort);

pFile=pServer->OpenRequest(CHttpConnection::HTTP_VERB_GET,strObject);

pFile->AddRequestHeaders(szHeaders);

pFile->SendRequest();

pFile->QueryInfoStatusCode(dwRet);

if(dwRet==HTTP_STATUS_OK)

{

UINT nRead=pFile->Read(szBuff,1023);

while(nRead>0)

{

file://读取文件

}

}

delete pFile;

delete pServer;

}

catch(CInternetException* pEx)

{

file://捕捉WinInet的错误

}

session.Close();

3 通过FTP操作一个文件

#include <afxinet.h>

file://假设服务器名和文件名已经初始化了

CInternetSession session("My FTP Session");

CFtpConnection* pConn=NULL;

pConn=session.GetFtpConnect(lpszServerName);

file://取得文件

if(!pConn->GetFile(pstrRemoteFile,pstrLocalFile))

file://显示一个错误

delete pConn;

session.Close();

4重新获得一个Gopher目录

#include <afxinet.h>

file://假设文件名已经初始化了

CInternetSession session("My Gopher Session");

CGopherConnection* pConn=NULL;

CGopherFileFind* pFile;

pConn=session.GetGopherConnection("gopher://gopher.yousite.com/");

pFile=new CGopherFileFind(pConn);

BOOL bFound=pFile->FindFile(lpszFileToFind);

while(bFound)

{

bFound=pFile->FindNextFile();

file://重新获得找到的文件属性

}

delete pFile;

delete pConn;

session.Close();

当在使用WinInet类库时,用户可以使用应用程序的CInternetSession对象的成员函数

OnStatusCallback来获取状态信息。如果用户继承了其自己的CInternetSession对象,

编写了超越函数OnStatusCallback并允许状态的回调,MFC将把此次国际互连网对话的

所有活动的进度信息作为参数,调用用户的OnStatusCallback函数。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航