ws实习实验报告

上传人:第*** 文档编号:34209058 上传时间:2018-02-21 格式:DOC 页数:12 大小:219KB
返回 下载 相关 举报
ws实习实验报告_第1页
第1页 / 共12页
ws实习实验报告_第2页
第2页 / 共12页
ws实习实验报告_第3页
第3页 / 共12页
ws实习实验报告_第4页
第4页 / 共12页
ws实习实验报告_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《ws实习实验报告》由会员分享,可在线阅读,更多相关《ws实习实验报告(12页珍藏版)》请在金锄头文库上搜索。

1、WS实习实验报告基础部分手机号码归属地查询服务:WSDL文档解析:/所有的WSDL文档的根元素均是 definitions元素。该元素封装了整个文档,同时通过其 name提供了一个WSDL文档。目标名称空间:http:/WebX Schema DataTypes./ types元素用作一个容器,用于定义XML 模式内置类型中没有描述的各种数据类型。当声明消息部分的有效负载时,消息定义使用了在types元素中定义的数据类型和元素。/数据定义部分,该部分定义了两个元素,一个是getmobileCodeInfo,一个是:getMobileCodeInfoResponsegetmobileCodeIn

2、fo:定义了一个复杂类型,包含两个简单的字符串mobileCode和userID,将来用来描述操作的参入传入部分;getMobileCodeInfoResponse:定义了一个复杂类型,仅仅包含一个简单的字符串getMobileCodeInfoResult,将来用来描述操作的返回值; /message元素使用在WSDL文档的type元素中定义或在import 元素引用的外部WSDL文档中定义的XML 模式的内置类型、复杂类型或元素描述了消息的有效负载;/message元素描述了Web服务使用消息的有效负载。 message元素可以描述输出或者接受消息的有效负载;还可以描述SOAP文件头和错误d

3、etail元素的内容。定义message元素的方式取决于使用RPC样式还是文档样式的消息传递。在本文中的message元素的定义,本文档使用了采用文档样式的消息传递】/如果采用RPC样式的消息传递,只需要将文档中的element元素应以修改为type即可./portType元素定义了 Web服务的抽象接口。该接口有点类似 Java的接口,都是定义了一个抽象类型和方法,没有定义实现。一个portType中可以定义多个 operation,一个operation可以看作是一个方法 br /输入参数:mobileCode = 字符串(手机号码,最少前7位数字),userID = 字符串(商业用户ID

4、) 免费用户为空字符串;返回数据:字符串(手机号码:省份 城市 手机卡类型)。/portType定义了服务的调用模式的类型,这里包含一个操作getMobileCodeInfo方法,同时包含input和output表明该操作是一个请求响应模式,请求消息是前面定义的getMobileCodeInfoSoapIn,响应消息是前面定义的tns:getMobileCodeInfoSoapOut。input 表示传递到Web服务的有效负载,output消息表示传递给客户的有效负载br /输入参数:无;返回数据:一维字符串数组(省份 城市 记录数量)。br /./binding元素将一个抽象portType

5、映射到一组具体协议(SOAO和HTTP)、消息传递样式、编码样式。通常binding元素与协议专有的元素和在一起使用 /input消息格式,编码方式literral:/output消息格式,l编码方式iterral:./service元素。服务元素包含一组port 元素。端口将端点与来自服务接口定义的 binding 元素关联起来。* port指定一个绑定的地址,这样定义一个通信的终端。a href=http:/ target=_blank ,提供最新的国内手机号码段归属地数据,每月更新。a href=http:/ target=_blankbr / JAVA客户端创建java项目,右击项目新

6、建web 服务客户端,根据url指定web服务的wsdl文档自动生成客户端代码将web服务引用中的getMobileCodeInfo方法拖至程序源码中,即可调用web服务private static String getMobileCodeInfo(java.lang.String mobileCode, java.lang.String userID) /创建服务实例.webxml.MobileCodeWS service = new .webxml.MobileCodeWS();/获取服务端点接口.webxml.MobileCodeWSSoap port = service.getMobi

7、leCodeWSSoap();/调用web服务return port.getMobileCodeInfo(mobileCode, userID);页面截图:网页客户端详细代码:try /创建服务实例.webxml.MobileCodeWS service = new .webxml.MobileCodeWS();/获取服务端点接口.webxml.MobileCodeWSSoap port = service.getMobileCodeWSSoap();/ TODO initialize WS operation arguments herejava.lang.String mobileCode

8、 = request.getParameter(num);java.lang.String userID = ;/ TODO process result here/调用web服务java.lang.String result = port.getMobileCodeInfo(mobileCode, userID);out.println(查询结果 = +result); catch (Exception ex) / TODO handle custom exceptions here页面截图:Android客户端详细代码:将web服务的方法包装在NumberService 类中的getLoc

9、ation方法中NumberService.:public String getLocation(String number) throws Exception / 读取本地准备好的文件, 用输入的号码替换原来的占位符 InputStream in = NumberService.class.getClassLoader().getResourceAsStream(send.xml); byte data = StreamUtil.load(in); String content = new String(data); content = content.replace($number, nu

10、mber); / 创建连接对象 , 设置请求头, 按照Webservice服务端提供的要求来设置 URL url = new URL(http:/ HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setConnectTimeout(5000); conn.setRequestProperty(Host, ); conn.setRequestProperty(Content-Type, application/soap+xml; charset=utf-8); conn.setRequestPrope

11、rty(Content-Length, content.getBytes().length + ); conn.setRequestMethod(POST); / 输出数据 conn.setDoOutput(true); conn.getOutputStream().write(content.getBytes(); / 获取服务端传回的数据 , 解析XML, 得到结果 XmlPullParser parser = Xml.newPullParser(); parser.setInput(conn.getInputStream(), UTF-8); for(inttype=parser.get

12、EventType();type!=XmlPullParser.END_DOCUMENT;type=parser.next() if(type=XmlPullParser.START_TAG&parser.getName().equals(getMobileCodeInfoResult) return parser.nextText(); return 没有找到此号码; 界面截图:提高部分天气预报系统:页面截图:主要代码:static weather.WeatherWebService w = new weather.WeatherWebService();/把webservice当做一个类来操作主要步骤:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号