小白带你简单的了解一下webservice 接口的调用,首先我先提出几个问题跟着问题去找答案。
1.什么是websercice接口?
Web service是一个平台独立的,松耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的互操作的应用程序。
小白初理解:提供一个接口网址 提供一个服务给你,并且按照服务接口需要的格式提供参数,此接口就会返回一个对应的信息。例如一个天气接口, 你给天气接口以xml形式发送了城市参数,它就能返回你一个当前城市的天气的信息。
2.为什么要使用webservice?
Web Service技术, 能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件, 就可相互交换数据或集成。依据Web Service规范实施的应用之间, 无论它们所使用的语言、 平台或内部协议是什么, 都可以相互交换数据。Web Service是自描述、 自包含的可用网络模块, 可以执行具体的业务功能。Web Service也很容易部署, 因为它们基于一些常规的产业标准以及已有的一些技术,诸如标准通用标记语言下的子集XML、HTTP。Web Service减少了应用接口的花费。Web Service为整个企业甚至多个组织之间的业务流程的集成提供了一个通用机制。
小白初理解:一个程序并不是只依靠自己就实现所有功能,我们可以使用别人提供的web接口来扩展自己的程序,只要按照同样的接口规则就能使用,并且web接口可以跨平台使用这样就让不同平台不同程序实现了通信。
3.webservice要怎么去调用?
直接AXIS调用远程的web service
import java.util.Date;
import java.text.DateFormat;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import javax.xml.namespace.QName;
import java.lang.Integer;
import javax.xml.rpc.ParameterMode;
public class caClient {
public static void main(String[] args) {
try {
String endpoint ="";
//直接引用远程的wsdl文件
//以下都是套路
Service service = new Service();Call call = (Call) service.createCall();
call.setTargetEndpointAddress(endpoint);
call.setOperationName("addUser");//WSDL里面描述的接口名称
call.addParameter("userName", org.apache.axis.encoding.XMLType.XSD_DATE,
javax.xml.rpc.ParameterMode.IN);//接口的参数
call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);//设置返回类型
String temp = "测试人员";
String result = (String)call.invoke(new Object[]{temp});
//给方法传递参数,并且调用方法
System.out.println("result is "+result);
}
catch (Exception e) {
System.err.println(e.toString());
}
}
}