Une question plutôt simple. Dois-je utiliser la bibliothèque WinHttp
pour effectuer une demande de service Web dans mes programmes C++ ou dois-je utiliser l'interface IXmlHttpRequest
dans la bibliothèque msxml
pour envoyer des demandes de service Web? De toute évidence, la bibliothèque WinHttp
offre un contrôle beaucoup plus fine par rapport à la bibliothèque IXmlHttpRequest
. Mais l'objet XmlHttpRequest
est une norme w3.org
et en théorie plus portable.Windows C++ Dois-je utiliser la bibliothèque WinHttp ou XmlHttp de MSXML?
Répondre
Cela dépend si vous accédez au service sur un canal sécurisé, c'est-à-dire HTTPS ou simple, c'est-à-dire HTTP.
Selon MSDN (http://msdn.microsoft.com/en-us/library/ms891732.aspx
), IXMLHttpRequest prend uniquement en charge HTTP.
Remarque IXMLHTTPRequest ne supporte pas accès au site Web sécurisé. Pour accéder à un site Web sécurisé, utilisez l'API WinINet.
Mais WinInet API est assez vieux et ont des problèmes de traitement multithread (je pense qu'il est là MSDN aussi) ...
donc le meilleur pari est WinHTTP pour HTTPS et HTTP, sinon bon vieux IXMLHttpRequest.
Remarque: libcurl et curlpp (port C++ de libcurl) est également à vérifier. Il y a un ancien poste pour cela http://stackoverflow.com/questions/1011339/how-do-you-make-a-http-request-with-c
Une réponse simple à votre «question simple»: vous devriez utiliser ce que vous vous sentez le plus à l'aise et ce qui correspond le mieux à vos besoins. Vous pouvez également considérer le http client in boost::asio.