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