webservice应用汇总
一、什么是webservice?
1.WebService,顾名思义就是基于Web的服务。它使用Web(HTTP)方式,接收和响应外部系统的某种请求。从而实现远程调用.可以进行跨平台、跨语言实现和调用。
2.我们可以调用互联网上查询天气信息Web服务,然后将它嵌入到我们的程序(C/S或B/S程序)当中来,当用户从我们的网点看到天气信息时,他会认为我们为他提供了很多的信息服务,但其实我们什么也没有做,只是简单调用了一下服务器上的一段代码而已。
3.从WebService的工作模式上理解的话,它跟普通的Web程序(比如ASP、JSP等)并没有本质的区别,都是基于HTTP传输协议的程序。
4.WebService所使用的数据均是基于XML格式的。目前标准的WebService在数据格式上主要采用SOAP协议。SOAP协议实际上就是一种基于XML编码规范的文本协议。
二、soap协议的理解
(1)使用jdk中wsimport命令
wsimport -s . http://192.168.1.110:6773/hello?wsdl
解析成java源码包,将包引用到项目中
(2)客户端中的代码引用1
HelloServiceService haa=new HelloServiceService(); HelloService ha = haa.getHelloServicePort(); String str = hs.sayHello("张三"); system.out.printLn(str);
(3)客户端编程的方式引用2
//声明wsdl地址 URL u =new URL("http://localhost:9999/one?wsdl"); //获取命名空间 String ns = "http://wj.cn"; //第二个参数是一个完全限定名,WjService是服务 Service service = Service.create(u, new QName(ns, "WjService")); //通过service的getPort方法返回指定的接口 One one= service.getPort(new QName(ns , "one") , One.class); String res = one.sayHello("张三") ;
2、js/ajax的调用
var http = null; function createHttp(){ if(window.XMLHttpRequest){ http= new XMLHttpRequest(); }else { http= new ActiveXObject("Mcrosoft.XMLHttp"); } } function request(){ var nm= document.getElementById("name").value; createHttp(); var url="http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx/getMobileCodeInfo"; var requestBody='<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"'+ ' xmlns:q0="http://server.jaxb.cn/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"'+ ' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">'+ '<soapenv:Body><q0:sayHi><arg0>'+nm+'</arg0></q0:sayHi></soapenv:Body></soapenv:Envelope>'; http.open("POST",url,true); http.onreadstatechange=function(){ if(http.readystate==4){ if(http.status==200){ var res=http.responseXML; var ele=res.getElementsByTagName("return"); var value=ele[0].firstChild.nodeValue; alert(value); } } } }
3、android上的引用HttpURLConnection
//定义地址 URL url =new URL("http://192.168.1.100:6789/hello"); //定义connect对象 HttpURLConnection conn=(HttpURLConnection ) url.openConnection(); //设置请求方式 conn.setRequestMethod("POST"); conn.setDoInput(true); conn.setDoOutput(true); //设置请求头内容为xml conn.setRequestProperty("Content-Type" , "text/xml;charset=UTF-8"); //定义输出 OutputStream out =conn.getOutputStream(); //设置请求体 String requestBody="<><>" //输出数据 out.write(requestBody.getBytes()); //定义输入 InputStream is =conn.getInputStream(); // byte[] b = new byte[1024]; //定义缓存字符 StringBuffer sb=new StringBuffer(); int len=0; while((len= is.read(b)) != -1){ String s =new String (b,0 , len ,"UTF-8"); sb.append(s); } is.close(); out.close(); conn.close();
六、总结
webservice的应用远不止于上面写道的,鄙人只是浅略的做一些汇总,有什么问题请见谅
webservice广泛用到的技术:
TCP/IP:通用网络协议,被各种设备使用
HTML(标准通用标记语言下的一个应用):通用用户界面,可以使用HTML标签显示数据
Java:写一次可以在任何系统运行的通用编程语言,因为java具有跨平台特性
XML(标准通用标记语言下的一个子集):通用数据表达语言,在web上传送结构化数据的容易方法