C++实现webservice
1、C++可以实现webservice吗?即:C++作为web服务器,我用html中或者PHP中调用C++实现的接口。2、网上说用gsoap可以实现C++的webserv...
1、C++可以实现webservice吗?即:C++作为web服务器,我用html中或者PHP中调用C++实现的接口。
2、网上说用gsoap可以实现C++的webservice,那它需要服务器吗(php需要apache作为web服务器)?它是怎么常驻内存提供给其他平台调用的?
3、通过soap协议可以在js中把参数都拼到xml串中,直接调用C++的webservice接口吗?
3、我不会C++,所以不用跟我写代码具体实现,只要说说原理即可 包括:上面两个问题,还有在其他平台(比如一个PHP的网站)中怎么调用C++实现的webservice接口?
4、请有过这种项目经验的人给解惑,谢谢,请按条回答。 展开
2、网上说用gsoap可以实现C++的webservice,那它需要服务器吗(php需要apache作为web服务器)?它是怎么常驻内存提供给其他平台调用的?
3、通过soap协议可以在js中把参数都拼到xml串中,直接调用C++的webservice接口吗?
3、我不会C++,所以不用跟我写代码具体实现,只要说说原理即可 包括:上面两个问题,还有在其他平台(比如一个PHP的网站)中怎么调用C++实现的webservice接口?
4、请有过这种项目经验的人给解惑,谢谢,请按条回答。 展开
3个回答
展开全部
1 C++当然可以实现webservice,这是毋庸置疑的.axis2你知道吗?本质是运行在tomcat下的一个servlet,分java版本,和C语言版本.官方网站为:http://axis.apache.org/,首页上写着:
The well known Apache Axis, and the the second generation of it, the Apache Axis2, are two Web Service containers that helps users to create, deploy, and run Web Services.
Axis2 is avaialble in both Java as well as C, languages and details about each version can be found below. 大概意思就是这东西分java版本和C版本,可以方便用户创建,部署,运行web service.而C++完全是兼容C的.
2 当然需要服务器,可能要实现某个服务吧,至于怎样为其他平台服务,主要是监听端口实现解析http协议.
3 你的问题有问题,js不需要拼串成XML,服务器才要拼串,JS是运行在客户端的,客户端也不是通过SOAP与服务端进行通讯的,而是根据需要调用的服务的WSDL,提供对应参数,客户端与服务端的通讯是用http协议的,而通讯方式根据是GET还是POST把相关参数放到HTTP头或者体中.而web service之间的通讯才可能用得到SOAP.
4 PHP调用web service是非常简单的,貌似有个函数通过SOAP调用.C++编写的web service肯定有WSDL,可以根据WSDL描述的端口参数,来调用.
PS1:我没有做过C++的Web service,只做过java的,但是所有语言都是相同的,基本原理都是一样的,另外web service最好的做法是对外隐藏的,不能直接调用,应该有个类似调度中心的存在来负责调用,这是一个设计方式. 当然直接调用也是可以的,但这种方式效率不高.
PS2:C++可以做web service,但不是很好,缺乏技术支持,软件支持,虽然管道过滤器模型不限制过滤器的实现方式,但怎么说呢,C++就是不适合,毕竟和其他构件存在配合问题,而且开发成本也会相对要高点. 现在主流的是C#和JAVA.
The well known Apache Axis, and the the second generation of it, the Apache Axis2, are two Web Service containers that helps users to create, deploy, and run Web Services.
Axis2 is avaialble in both Java as well as C, languages and details about each version can be found below. 大概意思就是这东西分java版本和C版本,可以方便用户创建,部署,运行web service.而C++完全是兼容C的.
2 当然需要服务器,可能要实现某个服务吧,至于怎样为其他平台服务,主要是监听端口实现解析http协议.
3 你的问题有问题,js不需要拼串成XML,服务器才要拼串,JS是运行在客户端的,客户端也不是通过SOAP与服务端进行通讯的,而是根据需要调用的服务的WSDL,提供对应参数,客户端与服务端的通讯是用http协议的,而通讯方式根据是GET还是POST把相关参数放到HTTP头或者体中.而web service之间的通讯才可能用得到SOAP.
4 PHP调用web service是非常简单的,貌似有个函数通过SOAP调用.C++编写的web service肯定有WSDL,可以根据WSDL描述的端口参数,来调用.
PS1:我没有做过C++的Web service,只做过java的,但是所有语言都是相同的,基本原理都是一样的,另外web service最好的做法是对外隐藏的,不能直接调用,应该有个类似调度中心的存在来负责调用,这是一个设计方式. 当然直接调用也是可以的,但这种方式效率不高.
PS2:C++可以做web service,但不是很好,缺乏技术支持,软件支持,虽然管道过滤器模型不限制过滤器的实现方式,但怎么说呢,C++就是不适合,毕竟和其他构件存在配合问题,而且开发成本也会相对要高点. 现在主流的是C#和JAVA.
追问
我还有问题:
1我php端也要实现webservice吗?html页面调用php用./aa.php?name=user然后php负责把name封装成xml格式的串再调用C++提供的webservice接口吗?这样我岂不是要php端和C++端都要实现webservice
2我直接用post方式把参数封装成xml格式,请求地址直接写C++提供的接口地址不可以吗
3我有一个php的web端,想把页面表单的数据传给 C++端的一个应用(必须用soap协议我糊涂了,请解释一下我这个工作应该怎样的流程实现
追答
1 这个问题不好回答,因为数据是不能直接传递给Web Service的,必须由Web service的容器处理过数据来传递给web service, 有些容器比如tomcat(以JAVA为例子),就可以直接从http中读取用户提交的数据,我没记错的话是 HttpServlet这个类来处理数据,这里有个很重要的接口,叫做HttpServletRequest,这包含了你数据以及处理方式. 以下省略1W字,太麻烦了.这个过程相当的麻烦. 你那个PHP封装name成xml数据也得先是你web service的容器来捕获,然后处理给service,至于容器能不能处理xml的数据流,就要看容器的类型了.
2 直接请求当然是可以的,但是,这不算是直接,因为你提交的数据,还是先是容器处理的,然后容器把参数什么的,提交给你写的Web service.这个容器是个很重要的概念, 举个例子吧.你向某个服务service1发送一个hello消息,这个消息被你service的容器捕获,处理成hello在发给你的service1,你的service1把hello处理成helloworld,再返回给你的容器,不是返回给你,容器再处理成helloworld这种xml形式(可以理解成一个SOAP吧),然后在通过容器返回给你.(这是典型的AXIS2工作模式,axis2是容器,webservice是服务).
3 你可以参考axis2的C语言版本,这个还是很容易实现的,返回的都是SOAP也就是一个xml文本文件,可以用javascript提取.至于PHP端可以不用,一个htnl+javascript就完全可以作为客户端了.
这里javascript处理用AJAX.
PS:以上都是我参考JAVA在WEB的模式自己的理解,并不一定适合所有环境.
佳达源
2024-10-28 广告
2024-10-28 广告
AR0144CSSM20SUKA0-CPBR这款产品,作为我司产品线中的重要一员,集成了高精度的传感器技术与先进的图像处理算法,广泛应用于安防监控、工业自动化及机器视觉等领域。其卓越的性能与稳定性,确保了在各种复杂环境下的精准数据采集与高效...
点击进入详情页
本回答由佳达源提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询