目录 WinHTTP 概述 会话对象 连接对象 请求对象 请求通知 请求取消 发送请求数据 其他功能 由于分布式编程的发展,大多数基于 Windows® 的现今的应用程序必须能够执行 HTTP 请求
虽然 HTTP 相对简单,但现今的 HTTP 的处理却未必简单
异步处理需要缓冲大量的请求和响应、身份验证、自动代理服务器检测、持久连接等操作
当然,您可以忽略其中的许多问题,但这会影响应用程序的质量,而且模拟 HTTP 不像模拟 TCP 套接字那样简单
那么,C++ 开发人员的任务是什么
一个常见的误解是,如果希望应用程序访问 Web,则需要使用 Microsoft®
NET Framework
事实上,使用托管代码的开发人员仍然必须处理许多我刚刚提到的问题,而且具象状态传输 (REST) 等许多新式 Web 服务使用本机代码进行编程也很容易
在本月的专栏中,我将介绍如何使用 Windows HTTP 服务(又称 WinHTTP)API 实现 HTTP 客户端
此外,在 Windows Vista® 和 Windows Server® 2008 中,WinHTTP 支持上载大于 4GB 的文件、改进了基于证书的身份验证,并且还提供了检索源 IP 地址和目标 IP 地址的功能
WinHTTP 既可提供 C API,又可提供 COM API
最初的 C API 自然较难使用,但是稍微借助一下 C++,它就可以为构建 HTTP 客户端提供功能强大且灵活的 API
此外,它还同时提供同步编程模型和异步编程模型
我将重点介绍异步模型,原因如下:首先,在当今的并发感知领域中,并行编程非常重要
其次,在文档和培训中,通常会过多强调单线程编程,而忽略了对并行编程的介绍
或许有人认为并行编程太简单,不需要专门提供说明性指导
虽然许多开发人员不愿意使用并行编程,但是您很快就会发现它相当自