使用WinInet类的学习体会

原创 2004年06月25日 20:02:00

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

使用WinInet类的学习体会

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

使用WinInet类的学习体会

使用WinInet类的学习体会 下列代码摘录示范了如何创建一个简单的浏览器、下载一张网页、通过FTP操作一个文件和查找一个Gopher文件。它们并不是一个完整的例子,其中不包含异常处理,只是本人最近写...
  • huyoo
  • huyoo
  • 2004年06月26日 02:56
  • 2012

WinInet的几个方法类的说明参考

MFC库参考 CInternetSession类 创建并初始化单个或多个同时进行的Internet会话,如有必要,可描述您与代理服务器的连接。 CInternetSession类:p...
  • thanklife
  • thanklife
  • 2017年05月03日 13:11
  • 193

一个利用WinInet通信的简单客户端Demo

WinInet简介 WinInet是微软提供的对Windows客户端与服务器通信的API,它是一个网络编程接口,包含了HTTP、FTP和Gopher,借助于这些接口,开发者不需要了解底层的一些知识,只...
  • u011645174
  • u011645174
  • 2014年01月20日 14:20
  • 1647

MFCWinInet学习

背景:功能:服务端下载文件服务端:用Java写Sevlet进行有效性验证客户端:用C++写程序,获取文件C++使用下载类为MFCWinInet,下载协议为HTTP。MFCWinInet下载优缺点如下。...
  • segen_jaa
  • segen_jaa
  • 2011年03月25日 16:18
  • 1992

基于WININET下HTTP协议访问之同步异步篇

基于WININET下HTTP协议访问,不采用VC下的封装类CInternetSession,因为它的异步操作理论上可行,MSDN中说明实际代码还在完善。 WININET API下以在HTTP协议...
  • ben_lbj
  • ben_lbj
  • 2014年08月21日 15:58
  • 1207

通过WinInet上传文件

// test.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include #include #include #include...
  • qq51931373
  • qq51931373
  • 2013年11月28日 16:46
  • 1134

使用 WinInet 进行 SSL 请求

使用 WinInet API 可以建立安全套接字层 (SSL) 或专用通信技术 (PCT) HTTP 会话。安全 HTTP(表示为 HTTPS://)在 TCP 端口 443 上发生。可以使用类似于下...
  • u010308862
  • u010308862
  • 2016年11月27日 17:20
  • 119

wininet实现http协议,GET 方法

#include #include #include #pragma comment(lib, "WinInet.lib") int main() {  HINTERNET hInternet ...
  • wljlwyq
  • wljlwyq
  • 2014年10月12日 16:01
  • 1451

WinINet请求过程

转自:http://blog.csdn.net/jiht594/article/details/7481889   一 WinINet是干什么的? 二如果完成一个基本的WinINet操作流程 ...
  • cuboo
  • cuboo
  • 2013年03月07日 13:28
  • 1019
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用WinInet类的学习体会
举报原因:
原因补充:

(最多只允许输入30个字)