使用 MFC WinInet 类编写 Internet 客户端应用程序

每个 Internet 客户端应用程序的基础是 Internet 会话。 MFC 将 Internet 会话作为 CInternetSession 类的对象实现。 通过使用此类,您可以创建一个 Internet 会话或多个同时会话。

若要与服务器进行通信,你需要一个 CInternetConnection 对象和一个 CInternetSession。 可以使用 CInternetSession::GetFtpConnectionCInternetSession::GetHttpConnectionCInternetSession::GetGopherConnection 创建 CInternetConnection。 所有这些调用都特定于协议类型。 这些调用不会在服务器上打开文件以进行读取或编写。 如果您打算读取或写入数据,则必须执行单独的步骤打开文件。

对于大多数 Internet 会话,CInternetSession 对象可与 CInternetFile 对象一起使用:

  • 对于 Internet 会话,必须创建 CInternetSession 的实例。

  • 如果 Internet 会话读取或写入数据,必须创建 CInternetFile 的实例(或其子类、CHttpFileCGopherFile)。 读取数据的最轻松方法是调用 CInternetSession::OpenURL。 此函数将分析您提供的统一资源定位器 (URL)、打开与 URL 指定的服务器的连接并返回一个只读的 CInternetFile 对象。 CInternetSession::OpenURL 并不会特定于一种协议类型 - 同一调用适用于所有 FTP、HTTP 或 gopher URL。 CInternetSession::OpenURL 甚至会处理本地文件(返回 CStdioFile 而非 CInternetFile)。

  • 如果 Internet 会话不读取或写入数据,而是执行其他任务(如删除 FTP 目录中的文件),则您可能不需要创建 CInternetFile 的实例。

可通过两种方法创建 CInternetFile 对象:

  • 如果使用 CInternetSession::OpenURL 建立服务器连接,则调用 OpenURL 将返回 CStdioFile

  • 如果使用 CInternetSession::GetFtpConnectionGetGopherConnectionGetHttpConnection 建立服务器连接,则必须分别调用 CFtpConnection::OpenFileCGopherConnection::OpenFileCHttpConnection::OpenRequest,以分别返回 CInternetFileCGopherFileCHttpFile

实现 Internet 客户端应用程序的步骤会有所不同,具体取决于你是基于 OpenURL 创建一个泛型 Internet 客户端,还是使用某个 GetConnection 函数创建协议特定的客户端。

你想进一步了解什么

另请参阅

Win32 Internet 扩展 (WinInet)
用于创建 Internet 客户端应用程序的 MFC 类
Internet 客户端类的必备条件