Какой API использовать для добавления поддержки HTTP-клиента в существующее приложение MFC? - PullRequest
2 голосов
/ 24 января 2009

Недавно мне была дана задача добавить возможность взаимодействия с Web Map Services в существующее приложение MFC, и мне нужен HTTP-API на стороне клиента.

Основываясь на моем исследовании, ведущими кандидатами являются CAtlHttpClient и WinHTTP . Мне было любопытно посмотреть, есть ли у кого-нибудь опыт, которым он может поделиться, или мнения о том, какой из них будет лучшим способом (или предложения о чем-то совершенно другом).

На первый взгляд, CAtlHttpClient выглядит немного выше и более прост в использовании. Однако в моем исследовании казалось, что всякий раз, когда у людей возникали проблемы с невозможностью что-либо с этим сделать, ответом было «использовать WinHTTP».

Результат

Я завел WinHTTP, потому что WinInet отображает диалоговые окна и наше приложение можно использовать через COM API. Я избегал Ultimate TCP / IP, потому что я работаю в большой компании, и получение стороннего программного обеспечения, одобренного для использования в продукте, - полный кошмар.

Ответы [ 2 ]

1 голос
/ 25 января 2009

Самый простой из них - WinInet Оболочки MFC : CInternetSession и друзья.

WinHTTP, хотя и другой API, построен на той же модели, что и WinInet, но обеспечивает лучшую поддержку HTTP (хотя FTP нет, но вам, вероятно, все равно). Нужно ли вам узнать о дополнительных вкусностях, предоставляемых WinHTTP.

Недостатком WinHTTP является то, что ATL / MFC не предоставляют оболочки для него, в отличие от WinInet.

И, как уже упоминал Роб, UltimateTCP - отличная альтернатива. Одним из его преимуществ является то, что это библиотека: вы связываете код с вашим приложением, тем самым устраняя потенциальные проблемы с адом DLL. Кроме того, он поставляется с полным исходным кодом, что может быть удобно, если вы столкнетесь с ограничением реализации.

Сделай свой выбор!

1 голос
/ 24 января 2009

Попробуйте Ultimate TCP / IP, доступный бесплатно здесь:

http://www.codeproject.com/KB/MFC/UltimateTCPIP.aspx

Это очень хорошая библиотека, которую очень легко интегрировать с вашими приложениями.

...