webservice:(2)体验查询号码归属地demo

本文介绍了如何使用Java通过wsimport工具调用WebService查询手机号码归属地。详细步骤包括:记录WSDL地址,使用JDK的wsimport生成调用代码,并编写测试类进行功能验证。在Mac环境下,解决zsh不兼容问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

对于webservice的介绍,本文就不再赘余讲述。
详见文章 webservice:(1)新手搭建调用webservice那些坑

首先,先给出一个站点,该站点提供了许多webservice服务,可供调用测试。
站点: http://www.webxml.com.cn/zh_cn/index.aspx

如上图所示,我们本文将测试归属地webservice。
我们先查询该webservice相关服务。

大家可以在该文本框中输入手机号,userID忽略,点击调用即可查询手机归属地。
接下来我们通过代码测试该ws。

注:请求方式有很多种,分别为post、get、soap、wsimport。在这里,使用wsimport方式请求!!!

步骤

1.记录所调用webservice的WSDL

进入之前的站点,找到相应webservice,点击服务说明

以下即为相应WSDL,一份xml文档

copy该站点的URL,如下

http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx?WSDL
2.使用JDK目录下的工具-wsimport,生成调用webservice相应的代码

wsimport 是一个命令,jdk1.6及以上才可以使用,ws针对不同的语言都会有个wsimport命令,我们可以在自己安装的jdk的bin目录下找到这个 wsimport.exe ,正因为有了这个,所以我们可以在命令行中使用wsimport命令。
输入以下命令,会在特定的包中生成java与class文件,接着将其copy至项目路径下即可。

wsimport -s . -p ws.client.c http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx?WSDL

Problem:在mac下的终端,若使用到了zsh,可能会出现以下情况。

这是由于 zsh 不兼容的问题!!!
具体原因:
因为zsh缺省情况下始终自己解释这个 *.h,而不会传递给 find 来解释。
解决方案:
打开 terminal,在~/.zshrc中加入:
setopt no_nomatch, 然后进行 source .zshrc 命令即可

以下为copy入项目空间的示例图
注:ws.client.test下的WebserviceTest为webservice测试类,暂时忽略。

这样就有了号码归属地查询这个ws服务相关的API了,且是通过官方的WSDL来生成的。接着,便是编写测试类测试功能了。

3.编写测试类测试
package ws.client.test;
import ws.client.c.MobileCodeWS;
import ws.client.c.MobileCodeWSSoap;

public class WebserviceTest {
	public static void main(String[] args) {

		//获取一个webservice服务
		MobileCodeWS ws = new MobileCodeWS();	

		//获取具体服务类型:get post soap1.1 and soap1.2
		MobileCodeWSSoap wsSoap = ws.getMobileCodeWSSoap();
		String address = wsSoap.getMobileCodeInfo("你的手机号码", null);
		
		System.out.println("手机归属地信息:"+ address);
	}
}

测试结果示例

OK!!!到这里我们就体验完了该webservice。

总结:

webservice中WSDL很重要,里面用xml描述了webservice的信息,所以我们可以通过解析WSDL来获取该webservice相关的API,然后在自己的项目中调用这些API即可调用该webservice。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值