2

我最近接到了一项任务,将与Web 地图服务交互的能力添加到现有 MFC 应用程序中,我需要一个客户端 HTTP API。

根据我的研究,领先的候选人似乎是CAtlHttpClientWinHTTP。我很想知道是否有人有可以分享的经验或关于哪种方法更好的意见(或完全不同的建议)。

乍一看,CAtlHttpClient 似乎级别更高一些,更容易使用。然而,在我的研究中,似乎任何时候人们遇到无法用它做某事的问题时,答案都是“使用 WinHTTP”。

结果

我最终使用了 WinHTTP,因为 WinInet 显示对话框并且我们的应用程序可以通过 COM API 使用。我避免使用 Ultimate TCP/IP,因为我在一家大公司工作,并且获得批准在产品中使用的第三方软件是一场彻头彻尾的噩梦。

4

2 回答 2

1

从这里免费试用 Ultimate TCP/IP:

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

这是一个非常好的库,并且很容易与您的应用程序集成。

于 2009-01-24T00:02:48.627 回答
1

最简单的是WinInet MFC 包装器CInternetSession和朋友。

WinHTTP,虽然是一个不同的 API,但建立在与 WinInet 相同的模型上,但提供了更好的 HTTP 支持(虽然没有 FTP,但您可能不在乎)。应该检查您是否需要 WinHTTP 提供的额外好处。

WinHTTP 的一个缺点是 ATL/MFC 不为其提供包装器,这与 WinInet 不同。

正如 Rob 所提到的,UltimateTCP是一个很好的选择。它的优点之一是它是一个库:您可以将代码链接到您的应用程序中,从而消除 DLL 地狱的潜在问题。此外,它还附带完整的源代码,如果您遇到实现的限制,这可能会很方便。

做你的选择!

于 2009-01-25T17:59:15.573 回答