2010-08-03 100 views
0

一个相当简单的问题。我应该使用WinHttp库在我的C++程序中发出Web服务请求,还是应该使用msxml库中的IXmlHttpRequest接口发送Web服务请求?很明显,与IXmlHttpRequest库相比,WinHttp库提供了更好的控制。但XmlHttpRequest对象是w3.org标准,理论上更便于携带。Windows C++我应该从MSXML使用WinHttp库还是XmlHttp?

回答

0

这取决于您是在安全通道(即HTTPS)还是简单通道(即HTTP)上访问该服务。

根据MSDN(http://msdn.microsoft.com/en-us/library/ms891732.aspx),IXMLHttpRequest仅支持HTTP。

注意IXMLHTTPRequest不支持安全网站的访问。要访问安全的网站,请使用WinINet API。

但WinInet的API是很老,并有一些多线程问题(我认为它的存在对MSDN太)...

所以最好的办法是为WinHTTP的HTTPS和HTTP,否则旧的IXMLHttpRequest很好。

注意: libcurl和curlpp(libcurl的C++端口)也有检查。这里有一个旧帖子http://stackoverflow.com/questions/1011339/how-do-you-make-a-http-request-with-c

0

简单回答你的“简单问题”:你应该使用你觉得最舒服的东西,以及最符合你需求的东西。您可以考虑http client in boost::asio