Windows C ++ Нужно ли использовать библиотеку WinHttp или XmlHttp из MSXML? - PullRequest
0 голосов
/ 04 августа 2010

Довольно простой вопрос. Следует ли мне использовать библиотеку WinHttp для отправки запроса веб-службы в моих программах на C ++ или использовать интерфейс IXmlHttpRequest в библиотеке msxml для отправки запросов веб-службы? Очевидно, что библиотека WinHttp обеспечивает гораздо более точный контроль по сравнению с библиотекой IXmlHttpRequest. Но объект XmlHttpRequest является стандартом w3.org и теоретически более переносим.

Ответы [ 2 ]

0 голосов
/ 05 августа 2010

Это зависит от того, обращаетесь ли вы к услуге по защищенному каналу, например, по протоколу 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 (c ++ порт libcurl) также доступны дляпроверять.Для этого есть старый пост /940504/kak-vy-delaete-http-zapros-s-c

0 голосов
/ 04 августа 2010

Простой ответ на ваш «простой вопрос»: вам следует использовать то, что вам наиболее удобно и лучше всего соответствует вашим требованиям.

Можно также рассмотреть http-клиента в boost :: asio.

...