下列代码摘录示范了如何创建一个简单的浏览器、下载一张网页、通过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函数。