关于webService的相关理解

什么是webService?

webService的相关概念:

        webService,就是一个部署在一个web服务器上的一个,向外界暴露并可以可以通过web进行调用的一个API,最早这个技术是由微软进行开发,后面为了成为W3C的标准,将此项技术分享到全球;它分为两个方面:1.使用编程方法使用web进行调用的这个应用程序叫做客户端;发布这个web应用程序的叫做服务端。

webSerivce的技术规则:     

 1.  基于web的系统级接口规范
    - 一个普通适用标准 :http+xml
    - 任何网络通信的操作系统
    - 自包含、自描述、模块化
    - 发布、定位、通过web调用
 2.  web service 技术和规则
    - xml(可拓展标记语言)
    - soap(简易对象访问协议)  soap – http+xml->socket
    - wsdl(web services 描述语言)
    - uddi(通用描述、发现及整合)
3. 跨平台的可互操作性
   - 基于xml
   - 基于xsd(xml schema )
   - 基于http
4. webservice 适用场景
   - 跨防火墙的通信
   - 异构系统间应用程序集成jee:(EJB RMI)phpc++.net (com+)

WebService的优势介绍:

  1. 异构平台的互通性:

           理论上, Web Service 最大的优势是提供了异构平台的无缝街接技术手段。由于不同的用户使用不同的硬件平台,不同的操作平台,不同的操作系统,不同的软件,不同的协议通信,这就产生了互相通信的需求。 Web Service 使任何两个应用程序,只要能读写XML,那么就能互相通信。简而言之,就是你现在使用的语言是java,而对方系统是C#进行编写的,为了访问的通用,我们就不可能要一个C#技术团队专门来对接对方的接口,使用webService就可以将这种不通用可以通用起来。

  2. 更广泛的软件复用

              软件的复用技术通过组合已有模块来搭建应用程序,能大幅度提高软件的生产效率和质量。用户只要获得了描述 Web    Service 的 WSDL (WebService Description Language – Web服务描述语言。调用该webservice api 的接口描述)文件,就可以方便地生成客户端代理,并通过代理访问 Web Service 。    

     3.成本低、可读性强、应用范围广

             Web Service 可用基于 XML 的 SOAP ( Simple Object Access Protocol(简单对象访问协议) )来表示数据和调用请求。并且通过 HTTP 协议传输 XML 格式的数据;

     4.迅捷的软件发行方式

              Web Service 将彻底地改变软件的发行方式。软件供应商可以把软件分解成若Web Service 模块构成的系统,直接在 Web 上发布;

webService的原理:

                                                                 

webService调用的相关get代码

package com.ws.b;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import org.apache.tomcat.util.http.fileupload.ByteArrayOutputStream;
/**
 * 调用第三方的webservice服务,获取电话号码信息
 * @author 22718
 */
public class MobileCodeService {
	//http-get方法访问webService
	public void get(String mobileCode,String userID) throws Exception{
		//定义一个URL来调用webService的接口
		URL url = new URL("http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx/getMobileCodeInfo?mobileCode="+mobileCode+"&userID="+userID);
		//获取http访问链接
		HttpURLConnection conn=(HttpURLConnection) url.openConnection();
		//设置链接时长
		conn.setConnectTimeout(5000);
		//设置链接的访问方法
		conn.setRequestMethod("GET");
		//如果访问返回的结果码是200,即访问成功
		if(conn.getResponseCode()==HttpURLConnection.HTTP_OK){
			//定义外部访问流
			InputStream is = conn.getInputStream();
			//定义内部内存流
			ByteArrayOutputStream baos=new ByteArrayOutputStream();
			//定义字节数组存储数据
			byte[] b=new byte[1024];
			//定义len进行接收,初始化值-1
			int len=-1;
			//不断循环数据,将读取的数据放入到内存流中
			while((len=is.read(b))!=-1){
				//输出内存流的信息
				baos.write(b, 0, len);
			}
			System.out.println("GET请求获取的数据:"+baos.toString());	
			 //关闭内存流
			 baos.close();
		     //关闭外部流
			 is.close();
		}
	}
	public static void main(String[] args) throws Exception {
		MobileCodeService ws=new MobileCodeService();
		ws.get("15150533689", "");
	}
}

猜你喜欢

转载自blog.csdn.net/u012994320/article/details/83239882