我们正在考虑将一些Web服务应用程序(目前处于原型阶段)从WCF / C#重做为C ++跨平台Web服务框架。所以,我正在将Axis2 / C或WSO2 WSF / C ++视为可能的框架。我真的想将已经在WCF服务中编写的功能移植到其他服务框架。
这是功能:
在WCF中,您可以通过修改服务操作来返回JSON:
[OperationContract]
[WebGet(UriTemplate = "/calltimings", BodyStyle = WebMessageBodyStyle.Bare, ResponseFormat = WebMessageFormat.Json)]
TimingInfo[] CallTimings();
其中TimingInfo是一个序列化为JSON的简单数据协定。我可以在Axis2(无论如何都是Java版本)中找到如何做同样的事情。
我的webservice支持的另一个电话是:
[OperationContract]
[WebGet(UriTemplate = "/ping.htm")]
Stream PingHTML();
动态生成html页面。还有其他类似的调用返回包含生成图像内容的Stream
。 WCF框架神奇地接受Stream并将内容直接放入HTTP响应主体。这对于图像非常有用,因为我可以像这样编写Web客户端代码:
<img id="viewportX" src="http://www.myservice.com/getimage?rotation=93"/>
所以,我的问题是:如何编写Axis2 / C服务操作,将图像内容直接返回给调用者?
我如何在网络客户端中写这个?
<img id="viewportX" src="http://www.myservice.com/axis2/some_service/getimage?rotation=93"/>
可以吗?