如何在 C++ 中调用休息服务?
我想从我的 C++ 应用程序调用用 WCF 编写的休息服务(它可以支持 XML 和 JSON Web 消息格式)。
实现这一目标的最佳解决方案是什么?我见过一些实用程序(gsoap),它们为您创建用于调用 Web 服务的代理类。
我可以在不使用任何中间实用程序的情况下实现相同的功能吗?由于它是一个休息服务,并且它使用基本 HTTP 函数 GET/PUT 函数工作,是否有任何 C++ 库/解决方案可用于直接从 C++ 应用程序调用这些函数?
I want to call a rest service written in WCF (which can support both XML and JSON Web Message Formats) from my C++ application.
What is the best solution to achieve this ? I have seen some utilities (gsoap) which create proxy classes for you to be used to call web services.
Can I achieve the same functionality without using any intermediate utility ? As its a rest service and it works using GET/PUT functions which are basic HTTP functions, is there any C++ library/Solution which could be used to invoke these function directly from a c++ application ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
在 Linux 上,您可能可以使用 curl 库(我猜它已移植到 Windows)。 Curl 是一个为 C 或 C++ 程序提供 HTTP 客户端功能的库。
On Linux, you probably could use curl library (and I guess it is ported to Windows). Curl is a library providing HTTP client functionality to a C or C++ program.
使用卡萨布兰卡。这对于 2013 年寻找这个答案的人来说应该会有帮助。CURL 是完全合适的,但如果你在 Windows 中做 C++ 并使用 MS 的东西,Casablanca 似乎很合适。
Use Casablanca. This should be helpful for people looking for this answer in 2013. CURL is perfectly appropriate but if you're doing C++ in Windows and using MS stuff, Casablanca seems fit.
我自己尝试过 gsoap,但维护我的应用程序的跨平台版本变得很困难。
相反,我选择了 HTTP 请求路线。
对于跨平台和 C++,我发现了这个 Call Rest Web Services from C++
I tried gsoap myself but it became difficult to maintain cross platform versions of my app.
Instead i went the HTTP request route.
For cross platform and C++ i found this Call Rest Web Services from C++
希望以下文章对您有所帮助
1 。使用 C++ 访问 XML Web 服务
2. C++ 的 SOAP 客户端
Hope the following articles might be of help to you
1. Accessing an XML Web Service Using C++
2. SOAP client for C++
如果确实不需要使用 REST 方法进行 XML 序列化,那么使用 curl 是完美的选择。但是,如果您想要在 C 或 C++ 中进行类型安全的 XML 序列化,那么使用curl会变得很麻烦,因为您必须使用在curl之上运行的东西来处理XML,例如使用DOM解析器(速度慢且不适合类型)安全的)。如果您有 WSDL,那么我推荐 gSOAP 2.8,它提供集成的 REST 和 XML 序列化功能(以及 JSON,当您需要时)。
If XML serialization with your REST approach is really not needed then curl is perfect to use. However, if you want type-safe XML serialization in C or C++ then it would become cumbersome to use curl, since you will have to use something that runs on top of curl to process XML such as with a DOM parser (slow and not type safe). If you have a WSDL, then I recommend gSOAP 2.8 which provides integrated REST and XML serialization capabilities (and JSON when you need it).