123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137 |
- Windows HTTP服务(WinHTTP)
- 目的
- Microsoft Windows HTTP服务(WinHTTP)为开发人员提供了HTTP客户端应用程序编程接口(API),通过HTTP协议向其他HTTP服务器发送请求。
- 适用范围
- WinHTTP支持桌面客户端应用程序,Windows服务和基于Windows服务器的应用程序。
- 因为.NET Framework应用程序应该使用System.net类中的网络设施,所以不建议在Microsoft .NET Framework上构建WinHTTP。
- 开发人员
- WinHTTP提供适用于基于Active Server Pages(ASP)的应用程序的C / C ++应用程序编程接口(API)和组件对象模型(COM)自动化组件。
- 对HTTP协议的基本了解对于使用任一接口很重要。
- 运行时要求
- WinHTTP 5.1提供5.0版本的改进。有关新功能的更多信息,请参阅WinHTTP 5.1中的新功能。
- WinHTTP 5.1现在是以下系统的操作系统组件:
- Windows Server 2003系列
- Windows XP SP1
- Windows 2000 SP3(数据中心服务器除外)
- 重要随着WinHTTP版本5.1的发布,WinHTTP 5.0下载不可用。Microsoft已从MSDN中删除WinHTTP 5.0 SDK下载,并于2004年10月1日终止了5.0版的产品支持。
- 关于WinHTTP
- Microsoft Windows HTTP服务(WinHTTP)为开发人员提供了HTTP / 1.1 Internet协议的服务器支持的高级接口。WinHTTP旨在主要用于与HTTP服务器进行通信的服务器应用程序在基于服务器的场景中。
- WinINet是一种较旧的技术,被设计为用于交互式桌面应用程序(如Microsoft Internet Explorer,Microsoft Office和Microsoft Money)的HTTP客户端平台。WinINet会显示一些用户界面,例如收集用户凭据。然而,WinHTTP以编程方式处理这些操作。需要HTTP客户端服务的服务器应用程序应使用WinHTTP而不是WinINet。有关更多信息,请参阅将WinINet应用程序移植到WinHTTP。
- WinHTTP也被设计用于系统服务和基于HTTP的客户端应用程序。WinHTTP比WinInet更安全可靠。但是,需要FTP或Gopher协议功能,cookie持久性,缓存,自动凭证对话框处理,Internet Explorer兼容性或下级平台支持的单用户应用程序应考虑使用WinInet。
- 该接口可以通过使用WinHTTP应用程序编程接口(API)或使用IWinHttpRequest和IWinHttpRequestEvents接口从C / C ++访问。也可以通过WinHTTP对象从脚本和Microsoft Visual Basic访问WinHTTP。有关各个功能的更多信息和说明,请参阅特定语言的WinHTTP函数参考。
- 应用程序(如C#或ASP.NET应用程序)应考虑托管的.NET Framework类。有关使用.NET Framework网络类的更多信息,请参阅MSDN库中的“访问Internet”主题:“.NET开发”>“.NET Framework SDK”>“.NET Framework”>“使用。 .NET框架“。
- 注意除了异步完成回调之外,WinHTTP不可重入。也就是说,当线程有一个等待WinHTTP功能之一的调用,如WinHttpSendRequest,WinHttoReceiveResponse,WinHttpQueryDataAvailable,WinHttpSendData或WinHttpWriteData时,它不能再次调用WinHTTP直到第一个调用完成。可能发生第二次调用的一种情况如下:如果应用程序将异步过程调用(APC)排队到调用WinHTTP的线程中,并且如果WinHTTP在内部执行警报等待,则APC将有机会运行。现在如果APC例程也可以调用WinHTTP,它重新输入WinHTTP API,WinHTTP的内部状态可能会被破坏。
- WinHTTP 5.1特性
- 在WinHTTP 5.1版中添加了以下功能:
- IPv6支持。
- AutoProxy功能。
- HTTP / 1.0协议,包括对keep-alive(持久)连接和会话cookie的支持。
- HTTP / 1.1分组转移支持HTTP响应。
- 在会话之间保持活跃的匿名连接池。
- 安全套接字层(SSL)功能,包括客户端证书。支持的SSL协议包括以下内容:SSL 2.0,SSL 3.0和传输层安全性(TLS)1.0。
- 支持服务器和代理身份验证,包括对Microsoft Passport 1.4和Negotiate / Kerberos包的集成支持。
- 自动处理重定向,除非被禁止。
- 脚本化界面除了API。
- 跟踪设备来帮助解决问题。
- WinHTTP不支持多个WinINet功能,包括URL缓存和持久性Cookie,自动转发,自动拨号,离线支持,文件传输协议(FTP)和Gopher协议。
- 有关版本5.1中引入的更改的更多信息,请参阅WinHTTP 5.1中的新增功能。
- WinHTTP入门
- 有关WinHTTP的更多信息,请参阅以下主题:
- WinHTTP版本描述了在不同平台上运行的两个版本的WinHTTP,版本5.0和版本5.1。
- WinHTTP 5.1中的新功能介绍了最新版本的WinHTTP中的更改和新增功能。
- 网络术语描述了与一般的网络和特定的HTTP协议有关的有用的概念和术语。
- 选择一个WinHTTP接口描述了C / C ++ API和WinHTTP的COM接口。
- WinHTTP安全注意事项描述使用WinHTTP时要注意的安全问题。
- 将WinINet应用程序移植到WinHTTP中,介绍如何修改现有的WinINet应用程序以使用WinHTTP API。
- WinHTTP功能
- WinHTTP提供以下功能:
- WinHttpAddRequestHeaders
- 向HTTP请求句柄添加一个或多个HTTP请求标头。
- WinHttpCheckPlatform
- 确定WinHTTP是否支持当前平台。
- WinHttpCloseHandle
- 关闭单个HINTERNET句柄。
- WinHttpConnect
- 指定HTTP请求的初始目标服务器。
- WinHttpCrackUrl
- 将URL分为其组成部分,例如主机名和路径。
- WinHttpCreateUrl
- 从组件部分创建URL,例如主机名和路径。
- WinHttpDetectAutoProxyConfigUrl
- 查找代理自动配置(PAC)文件的URL。此功能报告PAC文件的URL,但不下载该文件。
- WinHttpGetDefaultProxyConfiguration
- 从注册表中检索默认的WinHTTP代理配置。
- WinHTTPGetIEProxyConfigForCurrentUser
- 获取当前用户的Internet Explorer(IE)代理配置。
- WinHttpGetProxyForUrl
- 检索指定URL的代理信息。
- WinHttpOpen
- 初始化应用程序对WinHTTP功能的使用。
- WinHttpOpenRequest
- 创建HTTP请求句柄。
- WinHttpQueryAuthSchemes
- 返回服务器支持的授权方案。
- WinHttpQueryDataAvailable
- 返回使用WinHttpReadData立即可以读取的数据的字节数。
- WinHttpQueryHeaders
- 检索与HTTP请求相关联的头信息。
- WinHttpQueryOption
- 在指定的句柄上查询Internet选项。
- WinHttpReadData
- 从WinHttpOpenRequest函数打开的句柄中读取数据。
- WinHttpReceiveResponse
- 结束由WinHttpSendRequest启动的HTTP请求。
- WinHttpSendRequest
- 将指定的请求发送到HTTP服务器。
- WinHttpSetCredentials
- 将所需的授权凭证传递给服务器。
- WinHttpSetDefaultProxyConfiguration
- 在注册表中设置默认的WinHTTP代理配置。
- WinHttpSetOption
- 设置Internet选项。
- WinHttpSetStatusCallback
- 设置WinHTTP可以在操作过程中进行调用的回调函数。
- WinHttpSetTimeouts
- 设置涉及HTTP事务的各种超时。
- WinHttpTimeFromSystemTime
- 根据HTTP版本1.0规范格式化日期和时间。
- WinHttpTimeToSystemTime
- 获取HTTP时间/日期字符串并将其转换为SYSTEMTIME结构。
- WinHttpWriteData
- 将请求数据写入HTTP服务器。
- ————————————————
- 版权声明:本文为CSDN博主「零点零一」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
- 原文链接:https://blog.csdn.net/thanklife/article/details/70909661
|