当前位置:编程学习 > C/C++ >>

利用WinInet开发Internet程序

 

  M$所提供的WinInet开发包是作为ActiveX技术中的一部分,后来MS对WinInet API进行了包装并提供了相应的MFC类。WinNet开发包的作用是提供了对HTTP FTP Gopher协议的支持,使开发者在开发Internet程序时避免编写底层协议相关的代码。此外WinInet很多功能都是与IE有联系的,比如说可以使用IE中的设置和使用IE缓存中的数据。本节主要将内容集中在HTTP协议的使用上。

  WinInet中的CInternetSession是管理会话的类,一般来讲如果要使用WinInet功能都需要建立一个会话,然后在该会话的基础上使用数据存取功能。CInternetSession的构造函数中接收四个参数 CInternetSession( LPCTSTR pstrAgent = NULL, //应用程序名,可以自己定义
DWORD dwContext = 1, //上下文标记,如果使用回调功能时这个值将给传送给回调函数
DWORD dwAccessType = INTERNET_OPEN_TYPE_PRECONFIG, //
LPCTSTR pstrProxyName = NULL, //CERN代理服务器地址,一般设置为NULL
LPCTSTR pstrProxyBypass = NULL, //代理服务器地址
DWORD dwFlags = 0 );//标记,一般设置为0

dwAccessType可以为:

  • INTERNET_OPEN_TYPE_PRECONFIG 使用IE中的连接设置
  • INTERNET_OPEN_TYPE_DIRECT 直接连接到服务器
  • INTERNET_OPEN_TYPE_PROXY 通过代理服务器进行连接

当dwAccessType为INTERNET_OPEN_TYPE_PROXY时指明代理服务器地址。

dwFlags可以为:

  • INTERNET_FLAG_DONT_CACHE 不在缓存中保存取得的内容
  • INTERNET_FLAG_OFFLINE 脱机方式

在建立会话后就可以利用CInternetSession::OpenURL打开一个URL,并读取数据,函数原型为:

CStdioFile* OpenURL( LPCTSTR pstrURL, //文件URL地址
                 DWORD dwContext = 1, //上下文ID
                 DWORD dwFlags = INTERNET_FLAG_TRANSFER_ASCII, //标记
                 LPCTSTR pstrHeaders = NULL, //发送到服务器的数据头
                 DWORD dwHeadersLength = 0 );//发送到服务器的数据头长度

dwFlags可以为:

  • INTERNET_FLAG_RELOAD 强制重读数据
  • INTERNET_FLAG_DONT_CACHE 不保存到缓存
  • INTERNET_FLAG_TRANSFER_ASCII 使用文本数据
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,