1,WebService是基于SOAP协议的,
SOAP:Simple Object Access Protocal简单对象访问协议。
SOAP是通过HTTP的POST方式发送XML格式文档的协议。
2,WebService其实就是一个程序,它可以实现本地的程序访问远程主机服务器上的一个方法,可以实现远程方法调用。而且可以实现跨平台,跨语言。比如,在北京的一个程序要调用上海服务器上的一个程序的方法,而且不管这个远程方法是用什么语言写的,只要远程服务器提供WebService服务,就可以实现调用。
3,演示:
(1)手机归属地查询:
提供手机归属地查询的公司一般是移动或电信公司。提供的这些服务是免费的。我们可以在我们的应用程序中调用这些服务,我们只需要在我们的程序中调用运营商提供的方法即可。
在微软的网站上提供了这样的服务接口。
在右面有最新webservice,这里面就是提供的免费的服务端口:
打开more,在里面点击国内手机号码归属地查询web服务:
这里有Endpoint和WSDL等,
Endpoint是给用户使用的,在里面提供了查询手机信息的接口。
WSDL是给程序员看的,里面是XML文档,使用这个页面的URL就可以生成我们程序所需要的java类文件。
我们选择getMobileCodeInfo查询详细信息:
在mobileCode中输入手机号,userID是收费使用的,我们不用填(如果在程序中,调用这个方法,userID要传””而不是null)。
点击调用可以看到如下信息:
打开WSDL,可以看到XML文档:
需要使用JDK提供的命令:wsimport,在命令行直接输入wsimport,可以获得帮助信息。
在本地硬盘中新建一个文件夹,比如在e盘新建wstest文件夹:
在命令行进入这个目录:
根据URL网址输入命令:
wsimport –s . http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsdl
-s是生成java源文件和class字节码,后面的点是在当前目录下生成,后面再将提供XML文档的URL地址粘贴进去。回车,解析生成文件。
默认根据网站url生成路径文件夹。Cn.com.webxml
将里面的.class文件全部删除,将java文件复制到项目中。
建立测试文件WsDemo.java。
public class WsDemo { public static void main(String[] args) { MobileCodeWSSoap m = new MobileCodeWS().getMobileCodeWSSoap(); String ss = m.getMobileCodeInfo("18702238091",""); m.getDatabaseInfo(); System.err.println("sfasfdadfa"); System.err.println("手机号是:"+ss); } }
编码问题:
这里应该使用GBK编码。将这个工程设置成GBK编码:
工程右键àpropertiesàResource,将text file encoding的other中设置为GBK。然后可以看到:
运行这个main,就可以在控制台看到对应的信息(需要连网)。
(2)QQ号是否在线与这个过程类似。
在使用wsimport命令时,指定建立的目录结构(包路径):通过-p参数指定。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。