查询ubuntu是不是有webservice服务
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了查询ubuntu是不是有webservice服务相关的知识,希望对你有一定的参考价值。
webservice服务是需要手动安装的。
调用方法如下:
环境:ubuntu gcc gsoap
gsoap:是c/C++调用webservice服务的一种框架结构。
1,安装基础组件:
sudo apt-get install flex bison
sudo apt-get install libtool
sudo apt-get install zlib1g-dev
sudo apt-get install openssl
sudo apt-get install libssl0.9.8
sudo apt-get install libssl-dev
2,下载并安装gsoap源代码
tar -xvf gsoap_2.8.7.zip
./configure
make
make install
3,生成本地存根
wsdl2h -c -o web_service.h [URL]?wsdl
soapcpp2 -c -C web_service.h
此时,会在当前目录生成soapC.c soapClient.c soapClientLib.c sopah.h soapStub.h *.xml *.nsmap 文件。
4,编写代码并调用服务
[cpp] view plaincopy
struct soap sp;
struct _ns1__GetResultByADCode param;
struct _ns1__GetResultByADCodeResponse response;
struct xsd__base64Binary soundData;
soundData.__size=10;
soap_init(&sp);
param.adCode="";
param.appID="";
param.data=&soundData;
param.appVersion="";
param.language="";
param.latitude="";
param.macID="";
param.mapType="";
param.mobileNum="";
param.mobileType="";
param.requestType="";
param.resultType="";
param.userID="";
if(soap_call___ns2__GetResultByADCode(&sp,NULL,NULL,¶m,&response)==SOAP_OK)
printf("StatusCode:%s\\n",response.GetResultByADCodeResult->StatusCode);
printf("Result:%s\\n",response.GetResultByADCodeResult->Result);
else
printf("call webservice error! \\n");
soap_destroy(&sp);
soap_end(&sp);
soap_done(&sp);
5,添加静态库 libgsoap.a
6,编译并调用输出即可。
参考技术A 1,安装基础组件:sudo apt-get install flex bison
sudo apt-get install libtool
sudo apt-get install zlib1g-dev
sudo apt-get install openssl
sudo apt-get install libssl0.9.8
sudo apt-get install libssl-dev
2,下载并安装gsoap源代码
tar -xvf gsoap_2.8.7.zip
./configure
make
make install
3,生成本地存根
wsdl2h -c -o web_service.h [URL]?wsdl
soapcpp2 -c -C web_service.h
此时,会在当前目录生成soapC.c soapClient.c soapClientLib.c sopah.h soapStub.h *.xml *.nsmap 文件。
4,编写代码并调用服务本回答被提问者和网友采纳
WebService调用第三方提供的webService服务
互联网上面有很多的免费webService服务,我们可以调用这些免费的WebService服务,将一些其他网站的内容信息集成到我们的Web应用中显示,下面就以获取天气预报数据和查询国内手机号码归属地为例进行说明。
气象中心的管理系统将收集的天气信息并将数据暴露出来(通过WebService Server), 而各大站点的应用就去调用它们得到天气信息并以不同的样式去展示(WebService Client)。
调用免费的WebService获取天气预报信息
1、在网络上查询免费的天气预报webservice的地址:http://www.webxml.com.cn/WebServices/WeatherWebService.asmx ,浏览器访问结果如下:
2、wsdl文件地址:http://ws.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl
3、新建一个java工程,使用wsimport工具自动生成客户端代码:
创建java工程
使用wsimport工具生成代码,如下:
生成客户端代码报错,这个因为WebService服务端使用.net写的,生成java客户端代码报错。需要修改wsdl文件中的部分内容,操作如下:
a.将对应的wsdl文档保存到本地
b.修改wsdl文档的部分内容:将 <s:element ref="s:schema" /><s:any /> 替换成 <s:any minOccurs="2" maxOccurs="2"/>
继续生成客户端代码,如下:
----------------------》
4、编写客户端调用代码,如下:
1 package com.test.ws.client; 2 3 4 import cn.com.webxml.ArrayOfString; 5 import cn.com.webxml.WeatherWS; 6 import cn.com.webxml.WeatherWSSoap; 7 8 /** 9 * 调用WebService的客户端 10 * @author H__D 11 * @date 2017年8月3日 上午10:57:00 12 * 13 */ 14 public class WSClient { 15 16 public static void main(String[] args) { 17 //创建一个用于产生WeatherWS实例的工厂,WeatherWS类是wsimport工具生成的 18 WeatherWS factory = new WeatherWS(); 19 //通过工厂生成一个WeatherWSSoap实例,WeatherWSSoap是wsimport工具生成的 20 WeatherWSSoap weatherWSSoap = factory.getWeatherWSSoap(); 21 System.out.println(weatherWSSoap.getClass()); 22 23 //调用WeatherWSSoap的getWeather方法,获取天气信息 24 ArrayOfString weather = weatherWSSoap.getWeather("深圳", null); 25 for (String string : weather.getString()) { 26 System.out.println(string); 27 System.out.println("----------------"); 28 } 29 30 } 31 32 }
5、控制台输出如下:
调用免费的WebService获取手机号码归属地信息
1、在网络上查询免费的手机号码归属地webservice的地址:http://www.webxml.com.cn/WebServices/WeatherWebService.asmx ,浏览器访问结果如下:
2、wsdl文件地址:http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsdl ,如下:
3、新建一个java工程,使用wsimport工具自动生成客户端代码:
a、新建一个java工程:
b、使用wsimport生成客户端代码:
----------------》
4、编写客户端调用代码,如下:
1 package com.test.ws.client; 2 3 import cn.com.webxml.MobileCodeWS; 4 import cn.com.webxml.MobileCodeWSSoap; 5 6 /** 7 * 调用WebService的客户端 8 * @author H__D 9 * @date 2017年8月3日 上午11:13:39 10 * 11 */ 12 public class WSClient { 13 14 public static void main(String[] args) { 15 //创建一个用于产生MobileCodeWS实例的工厂,MobileCodeWS类是wsimport工具生成的 16 MobileCodeWS factory = new MobileCodeWS(); 17 //通过工厂生成一个MobileCodeWSSoap实例,MobileCodeWSSoap是wsimport工具生成的 18 MobileCodeWSSoap mobileCodeWSSoap = factory.getMobileCodeWSSoap(); 19 System.out.println(mobileCodeWSSoap.getClass()); 20 21 //调用MobileCodeWSSoap的getMobileCodeInfo方法,获取天气信息 22 String mobileCodeInfo = mobileCodeWSSoap.getMobileCodeInfo("151****1111", null); 23 System.out.println(mobileCodeInfo); 24 25 } 26 }
5、运行调用代码,控制台输出如下:
以上是关于查询ubuntu是不是有webservice服务的主要内容,如果未能解决你的问题,请参考以下文章
请教个关于多线程调用webservice接口是不是会相互影响的问题