Windows HTTP服务(WinHTTP)介绍

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服务器。 
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
MFC(Microsoft Foundation Class)是微软公司提供的一个用于开发Windows应用程序的C++类库,而WinHTTPWindows HTTP Services)是一组用于操作和管理HTTP协议的应用程序接口(API)。 MFC通过提供一系列封装好的类和函数,简化了Windows应用程序的开发过程。WinHTTP则提供了一些用于创建和管理HTTP请求的功能,使开发者可以在Windows平台上进行HTTP通信。与传统的WinINet相比,WinHTTP更加轻量级和可靠,并具有更好的性能。 使用MFC WinHTTP,开发者可以方便地在自己的应用程序中实现对HTTP服务器的请求和响应操作。通过封装好的类和方法,可以实现发送GET和POST请求、设置请求头、处理响应头、获取响应数据等操作。同时,WinHTTP还支持HTTPS协议,并提供了相应的安全机制,保证了数据的安全性。 MFC WinHTTP对于开发需要与网络进行交互的应用程序非常有用。例如,在开发一个聊天软件时,可以使用WinHTTP来发送和接收聊天消息;在开发一个在线视频播放器时,可以使用WinHTTP来请求视频流并进行播放;在开发一个网页爬虫时,可以使用WinHTTP来获取网页内容。 总之,MFC WinHTTP是一个在MFC框架下进行HTTP通信的强大工具。它提供了一套方便易用的API,使得开发者可以轻松地实现对HTTP服务器的请求和处理。对于需要进行网络交互的应用程序开发来说,MFC WinHTTP是一个不可或缺的利器。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

零点零一

您的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值