欢迎来到天天文库
浏览记录
ID:37713634
大小:263.00 KB
页数:7页
时间:2019-05-29
《webService调用过程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、如何调用web服务Web服务简介我们已经知道如何在java端调用web服务(见web服务使用说明文档),但是如何在其他平台的其他客户端调用我们的web服务呢?下面做一下简单介绍并通过Gsoap举一个请求服务的例子。WebService是一种跨平台的解决方案。在通讯过程中,客户端和服务端并不需要知道确切的实现(无论是语言级别还是操作系统平台以及系统结构).系统运行时,服务提供程序提供的外围接口描述地址在系统根目录下的services目录下。如下所示http://ServerIP:ServerPort/AppRoot/services/dwservice?wsdl接下来如何
2、调用并是使用这个服务接口和其他访问标准服务的过程类似。通过gsoapGsoap:一个提供soap协议封装和请求web服务的工具集合。详细参见http://www.cs.fsu.edu/~engelen/soap.html的一个实现版本简单举例。1.获取gsoap安装包http://sourceforge.net/project/showfiles.php?group_id=527811.解压后目录结构2.进入bin目录,找到两个工具如下使用如下命令wsdl2h-c-ooutfile.hinfile.wsdl生成所需的头文件如下:执行wsdl2h-c–oappservic
3、e.hhttp://yourappserver:port/approot/services/dwservice?wsdl结果在该目录下生成appservice.h1.根据头文件生成客户端存根执行命令:soapcpp2-coutfile.h(参数的意思是生成c代码,可选,具体使用方式参见gsoap使用手册)本例中执行下面的操作:soapcpp2-cappservice.h可以看到生成代码如下:在下面目录中找到soap头文件连同上面的文件一同导入到c/c++项目工程中如下(根据情况选择stdsoap2.c还是stdsoap2.cpp)1.建立测试类client.c代码如下:
4、#include#include#include"soapH.h"#include"dwserviceSoap11Binding.nsmap"intmain(void){structsoap*soap=soap_new();struct_ns2__serviceAdapterResponseout;char*url="http://yourserverIp:port/approot/services/dwservice.dwserviceHttpSoap11Endpoint/";struct_ns2__serviceAdapterm
5、sg;msg.xmlPara="
6、_MBSTRING);//设置soap编码为UTF-8,防止中文乱码soap->mode
7、=SOAP_C_MBSTRING;soap_set_mode(soap,SOAP_C_MBSTRING);setlocale(0,"chs");if(soap_call___ns3__serviceAdapter(soap,url,"urn:serviceAdapter",&msg,&out)==SOAP_OK){printf(out.return_);printf("OK");system("PAUSE");return0;}return0;}代码注意事项:xmlPara属性的值
8、需要是一个xml。其格式必须符合地纬公司的规定的数据交换格式。其中_ServiceMethod属于关键字其值是地纬公司开放服务函数接口(在服务发布描述文件中说明)对于返回值同样也是一个XML片段。格式按照地纬公司数据交换格式定义。如下:
此文档下载收益归作者所有