webservice接口开发实例(webservice接口开发简单例子)
怎么做webservice接口
以下是操作步骤:
1、编写服务代码
服务代码提供了两个函数,分别为sayHello和sayHelloToPerson,在HelloService.java类中
2、发布WebService
要将上边写的HelloService类发布为WebService,需要先搭建Web应用。下面是在Tomcat下使用Axis创建WebService服务的例子。
3、在Tomcat下创建Web应用
在该例子中,在Tomcat下创建了一个context path为test_webservice的WEB应用。
(1) 在Tomcat的webapps下创建如下文件系统
test_webservice
WEB-INF
lib
Classes
(2)在WEB-INF文件夹下创建web.xml文件,在web.xml中主要是配置axis。
4、复制axis相关的jar文件
将axis的相关jar文件复制到WEB-INF\lib文件夹下。这些文件包括:
activation.jar
axis.jar
axis-ant.jar
axis-schema.jar
commons-discovery-0.2.jar
commons-logging-1.0.4.jar
jaxrpc.jar
log4j-1.2.8.jar
mailapi.jar
saaj.jar
wsdl4j-1.5.1.jar
xmlsec-1.3.0.jar
5、测试发布的WEB应用
启动Tomcat服务,打开IE浏览器,访问http:host:port/test_webservice/services,
如果看到如下界面就说明AXIS部署成功了。
6、发布WebService
发布WebService需要使用现有的AdminService来实现,这里我写了一个批处理文件来发布WebService,以后如果需要发布其他文件,只需要修改相应的参数就可以了。
(1)创建deploy.wsdd文件。
(2)创建发布WebService服务的批处理文件deploywebservice.bat。
其中E:\workspace\Libwebservice是存放axis对应的jar文件的文件夹,现在将所有的jar文件都加入到此文件夹中。
-l后的参数是本地要发布WebService的AdminService对应的访问地址。
最后deploy.wsdd是对应的配置文件名称。
(3) 将deploy.wsdd文件和deploywebservice.bat文件复制到同一个文件夹下,执行deploywebservice.bat批处理文件,就可以将deploy.wsdd中描述的Java类发布为WebService。
C# 关于Web service + XML接口开发
调用webservice接口 通用跨平台跨语言接口方法 类似调用http请求
封装http请求 get 或者post 请求,添加header参数或者post数据---request
对方服务返回xml,一般网络通讯服务建议使用json(长度短,不冗余),response返回xml,解析xml即可
Python实现WebService接口(SOAP)
Web Service是一个[平台](平台/1064049)独立的,低耦合的,自包含的、基于可[编程](编程)的web的应用程序,可使用开放的[XML]()([标准通用标记语言](标准通用标记语言/6805073)下的一个子集)[标准](标准/219665)来[描述](描述/8928757)、发布、发现、协调和配置这些应用程序,用于开发分布式的交互操作的[应用程序](应用程序/5985445)。 [1]
Web Service技术, 能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件, 就可相互交换数据或集成。依据Web Service规范实施的应用之间, 无论它们所使用的语言、 平台或内部协议是什么, 都可以相互交换数据。Web Service是自描述、 自包含的可用网络模块, 可以执行具体的业务功能。Web Service也很容易部署, 因为它们基于一些常规的产业标准以及已有的一些技术,诸如[标准通用标记语言](标准通用标记语言/6805073)下的子集[XML]()、HTTP。Web Service减少了应用接口的花费。Web Service为整个企业甚至多个组织之间的业务流程的集成提供了一个通用机制。
**SOAP**
SOAP即[简单对象访问协议](简单对象访问协议)(Simple Object Access Protocol),它是用于交换[XML]()([标准通用标记语言](标准通用标记语言)下的一个子集)编码信息的轻量级协议。它有三个主要方面:XML-envelope为描述信息内容和如何处理内容定义了框架,将程序对象编码成为XML对象的规则,执行[远程过程调用](远程过程调用)(RPC)的约定。SOAP可以运行在任何其他[传输协议](传输协议)上。例如,你可以使用 SMTP,即因特网[电子邮件协议](电子邮件协议)来传递SOAP消息,这可是很有诱惑力的。在[传输层](传输层)之间的头是不同的,但XML有效负载保持相同。
Web Service 希望实现不同的系统之间能够用“[软件](软件)-软件对话”的方式相互调用,打破了软件应用、网站和各种设备之间的格格不入的状态,实现“基于Web无缝集成”的目标。
使用Python实现服务端
service.py 服务端启动文件
app.py webservice接口
使用Python实现客户端
client.py
上面调用的客户端接口,测试结果如下:
如何调用别人提供的webservice接口
在项目中选择【控制台应用程序】,点击项目右键,选择添加-服务引用。在地址栏中输入WebServie链接地址后回车,点击确定后在代码中就可以看到添加的服务应用了,详细步骤:
1、首先打开VS2013,选择文件-新建-项目。
2、在项目中选择【控制台应用程序】,将项目名称重新命名为【WebServiceTest】。
3、点击项目右键,选择添加-服务引用。
4、在地址栏中输入WebServie链接地址后回车,然后重新命名服务名称为【ServiceGetWeather】,点击确定后在代码中就可以看到添加的服务应用了。
5、然后在代码中添加如下代码,调用webservice,获取接口返回的数据,呈现出来。
6、这是运行的结果,可以看出接口返回了一个xml格式的数据。
如何使用C#创建WebService
C#学习到一定程度会涉及到C#创建WebService的一些高阶知识,本文试图对此做一个简单的介绍。
假设A是客户端,B是webservice服务端,用户通过http协议向服务器发送soap请求,webservice返回客户端Xml格式的数据。
现在我们看一看创建一个C#创建WebService的大致过程:
服务端的webservice是必须要建的。中间的soap,Xml我们不用去关心,在客户端这边,比较重要的是如何从webservice取得对象?答案是用的是proxy对象。客户端由代理对象(proxy)负责与webservice的通信。所以在客户端使用webservice,完全和使用一个本地对象是一样的。
我们现在以一个简单的C#创建WebService实例来说明。
打开vs.Net,新建工程(asp.Net ?web服务),在位置中键入http。//localhost/webserver,其中webserver就是工程的名字。确定后,出现一个Service1.asmx.cx,双击,出现代码窗口,
using ?System; ? using ?System.Collections; ? using ?System.ComponentModel; ? using ?System.Data; ? using ?System.Diagnostics; ? using ?System.Web; ? using ?System.Web.Services; ? namespace ?webserver ? { ? /// ? ? /// ?Service1 ?的摘要说明。 ? /// ? ? (1) ? public ?class ?Service1 ?: ? ?System.Web.Services.WebService ? { ? public ?Service1() ? { ? //CODEGEN:该调用是 ?ASP.Net ?Web ? ?服务设计器所必需的 ? InitializeComponent(); ? } ? #region ?Component ?Designer ?generated ?code ? //Web ?服务设计器所必需的 ? private ?IContainer ?components ?= ?null; ? /// ? ? /// ?设计器支持所需的方法 ?- ? ?不要使用代码编辑器修改 ? /// ?此方法的内容。 ? /// ? ? private ?void ?InitializeComponent() ? { ? } ? /// ? ? /// ?清理所有正在使用的资源。 ? /// ? ? protected ?override ?void ?Dispose ?( ?bool ?disposing ?) ? { ? if(disposing ? ?components ?!= ?null) ? { ? components.Dispose(); ? } ? base.Dispose(disposing); ? } ? #endregion ? // ?WEB ?服务示例 ? // ?HelloWorld() ?示例服务返回字符串 ?Hello ?World ? // ?若要生成,请取消注释下列行,然后保存并生成项目 ? // ?若要测试此 ?Web ?服务,请按 ?F5 ?键 ? // [WebMethod] ? // public ?string ?HelloWorld() ? // { ? // return ?"Hello ?World"; ? // } ? } ? } ? 下面在(1)处加入
[WebService(Namespace="http。//localhost/webserver/")]
这是因为soap是基于http协议上的,客户端无法知道webservice位于那个服务器上。在实际应用中,比如http。//www。ourfly。com上放置这个webservice,则Namespace改为http。//www。ourfly。com/webserver.
下面我们给这个webservice添加一个方法。
// [WebMethod] ? // public ?string ?HelloWorld() ? // { ? // return ?"Hello ?World"; ? // } ? 微软帮我们写好了一个,接着添加一个方法。 ?方法名称叫show. ? [WebMethod] ? public ?string ?show(string ?yourname) ? { ? return ?“http。//www。ourfly。com”+”欢迎”+yourname; ? } ? 现在,就可以运行了,按F5,点击show,输入你的名字, ?然后点击invote 看到了吧。 ? 〈 ?Xml ?version="1.0" ?encoding="utf-8" ??〉 ? ? 〈 string ?Xmlns="http。//tempuri。org/"〉 ?http。//www。ourfly。com欢迎yyg〈 /string〉 ?成功了。打开bin目录,Vs.Net已经将proxy做好了.webserver.dll.
现在我们在不同的环境下测试:
1.打开vs.Net,新建”windows应用程序”工程,命名为Client,增加按钮,文本框。
现在要用到代理了,右键单击右边的reference(引用),选择”添加引用”,选择浏览,找到webserver目录下的bin目录下的webserver.dll
再加入一个system.web.webservices的引用,在列表中有。
在form1.cs里,加入
using System.Web.Services;
using webserver;
然后在
private ?System.Windows.Forms.Button ?button1;
private ?System.Windows.Forms.TextBox ?textBox1;
后面,插入
private ?webserver.service1 ?Client
建立一个service1的实例。双击按钮,代码如下:
private ?void ?button1_Click ?(object ?sender, ?System.EventArgs ?e) ? { ? Client ?=new ?Service1(); ? string ?name; ? name=Client.show("龙卷风.Net"); ? textBox1.Text=name; ? } ? 按F5,运行工程,点击按钮,文本框中显示 http。//www。ourfly。com欢迎龙卷风.Net
2. Asp.Net ?web窗口的测试
方法与上面的一模一样,添加引用,建立service1的实例 在此不在细说。
3.在VB中测试
这个就要相对来说复杂一些 ,首先在VB中建立一个”标准EXE”的工程。添加引用:Microsoft ?Soap ?Type ?library。
注意:如果没有安装Microsoft ?Soap ?Toolkit,是没有这个类型库的。