Webservice手机号查询接口的调用

1 在这里我讲述,如何使用wsdl2命令生成客户端代码.
因为使用jdk自带的也可以,就是很烦.因为会生成.class字节码文件与.java文件在一个文件夹下,个人很不友好.但是不用配置cxf环境变量
2:小伙伴若是想使用jdk提供的命令,生成客户端也行.命令如下:
wsimport -s . -p com.ws.client http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsdl

下面讲述使用cxf命令生成客户端代码

wsdl2java -p com.itmck.api.phone -d .http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsdl

注意使用以上命令需要配置环境变量

先下载cxf相关依赖包,在配置如上环境变量,即可.
http://cxf.apache.org/download.html 随便下载一个版本就行了,不必深究于此

cmd中命令截图如下

两种方式调用均可以.其中cxf整合spring boot相关依赖如下:

第一种与第二种使用cxf来调用,需要引入cxf相关依赖

<!--spring boot整合CXF发布webService服务 --><dependency><groupId>org.apache.cxf</groupId><artifactId>cxf-spring-boot-starter-jaxws</artifactId></dependency>

代码如下调用如下

@RestController
public class WsActionController {// wsdl说明书地址private static final String WSDL_ADDRESS = "http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsdl";/***    方式一;需要引入cxf相关依赖 需要写个接口(这个接口和服务端一样,要根据wsdl写.很麻烦 干脆直接生成客户端代码.省的报错.)* @param str* @return*/@RequestMapping(value = "ws/{str}")public String xmlToObjs2(@PathVariable("str") String str) {// 1:创建代理工厂JaxWsProxyFactoryBean jaxWsProxyFactoryBean = new JaxWsProxyFactoryBean();// 2:设置代理地址jaxWsProxyFactoryBean.setAddress(WSDL_ADDRESS);// 3:创建一个接口代理实现MobileCodeWSSoap create = jaxWsProxyFactoryBean.create(MobileCodeWSSoap.class);// 4:调用方法获取相关信息String mobileCodeInfo = create.getMobileCodeInfo(str, null);return mobileCodeInfo;}/*** * 方式二:这种方式是不需要生成客户端代码,也不需要写接口* * @param str* @return*/@RequestMapping(value = "wp/{str}")public Object xmlToObjs(@PathVariable("str") String str) {// 创建动态客户端JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();Client client = dcf.createClient(WSDL_ADDRESS);// 需要密码的情况需要加上用户名和密码// client.getOutInterceptors().add(new ClientLoginInterceptor(USER_NAME,// PASS_WORD));Object[] objects = new Object[0];try {// invoke("方法名",参数1,参数2,参数3....);objects = client.invoke("getMobileCodeInfo", str,null);return objects[0].toString();} catch (java.lang.Exception e) {e.printStackTrace();}return null;}/*** *  方式三:直接调用不需要引入cxf相关依赖.仅仅需要生成客户端代码* @param str* @return*/@RequestMapping(value = "gs/{str}")public String getPinfo(@PathVariable("str") String str) {// 1:创建服务视图MobileCodeWS mobileCodeWS = new MobileCodeWS();// 2:获取服务实现类MobileCodeWSSoap port = mobileCodeWS.getPort(MobileCodeWSSoap.class);// 3:通过查询方法获取信息String mobileCodeInfo = port.getMobileCodeInfo(str, null);return mobileCodeInfo;}}

测试如下:

关于调用天气接口如下

同样使用以上命令生成时会报错:

这时候需要将wsdl说明书保存到本地中,然后打开xml,删除s:schama节点.再次生成即可

此时再使用上述其中一种调用方法即可,代码如下:在这里,我使用其中一种

 @RequestMapping("gw/{address}")public Object getWeather(@PathVariable("address") String address) {// 创建服务视图,视图是从service标签的name属性获取WeatherWS weatherWS = new WeatherWS();// 根据 服务视图 获取 服务实现类,实现类从portType的name属性获取WeatherWSSoap port = weatherWS.getPort(WeatherWSSoap.class);// 获取查询方法,从portType的operation标签获取ArrayOfString weather = port.getWeather(address, null);// 返回所有数据// 获取list集合遍历可以获取相应的内容
//      List<String> string = weather.getString();// 特定数据
//      String string2 = string.get(4);return weather;}

注意:

说到这里,讲述一下,会出现的几种坑
1:我们在本地生成客户端代码后,不能删除我们本地保存的wsdl使用说明书,否则报错找不到root
这是因为代码:
此时我们应该将上面标记的两处内容 修改成服务器端wsdl说明书的路径

2:只有修改成上面的样子才能删除本地wsdl说明书,不报错.
3:使用 cxf对应的调用方式可能报错.比较步骤1修改即可
3:上述调用要连接网络,有些人说报错,什么的,可能是因为你电脑没连接网络.
测试如下:

1:这里一篇文章可以借鉴 https://blog.csdn.net/qq_26545305/article/details/80559515
本文也参考这篇文章
2:有兴趣可以交流,传统maven到spring boot真香定理 https://blog.csdn.net/ajax_mck/article/details/86677953

WebService调用天气接口及手机号查询归属地接口相关推荐

  1. 根据手机号查询归属地以及制式信息

    根据手机号查询归属地以及制式信息 *在某些项目中我们会有这样的需求,就是要我们开发一个根据用户手机号码获取对应归属地(湖南)以及制式信息(中国联通)的API,很多人可能会问自己的左脑or右脑,咋们大中 ...

  2. Webservice调用天气接口案例

    废话不多说,希望能够帮助到大家. 天气接口:http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl pom.xml配置: co ...

  3. webservice调用天气服务

    常见服务:http://www.webxml.com.cn/zh_cn/support.aspx 可能用到缺少的ArrayOfString.java文件 package com.test.wes.we ...

  4. python全国快递查询接口和电子面单打印接口,一次接入全国快递公司

    快递100python快递查询接口-一次性接入顺丰.京东.申通.圆通.韵达.中通.天天.百世.邮政.EMS等主流快递公司,只需要复制源码,并将部分参数修改为您的账户参数即可. 此python接口dem ...

  5. 查询图书信息接口 查询图书详情

    于万千之中选择你所爱--好书推荐,值得你信赖.查询图书信息接口可查询图书内容,包括书名.书名简介.图书内容简介.图书封面.阅读人数.网购地址.发布时间等等. 接口名称:查询图书信息接口 接口平台:开放 ...

  6. php 汉字转拼音接口,php将汉字转化为拼音和获取ip归属地接口

    今天无事,翻看了一下以前写的一个js接口获取ip归属地,然后调用对应地区商务通的接口,发现写的还不错,于是,想了一想,觉得可以整理一下写一个接口,虽然这样的接口已经不少了,但是,毕竟来说写个接口的确也 ...

  7. java金蝶星空云金蝶Java 对接 金蝶云星空 接口 对接 金蝶API 对接 金蝶 接口 解决 会话失效 问题 会话已失效,请重新登录

    java金蝶星空云金蝶Java 对接 金蝶云星空 接口 对接 金蝶API 对接 金蝶 接口 解决 会话失效 问题 会话已失效,请重新登录 1.准备工作 1.1 接口调用账户 1.2 下载 金蝶星空云 ...

  8. 免费的webservice接口(天气预报/IP查询/股票查询/手机归属地等)

    搜集了一些公共服务的 Web Service 接口,可以在自己的应用中使用. 来自 www.36wu.com 的服务: 快递查询WEB服务 http://webservice.36wu.com/Exp ...

  9. 调用阿里API实现手机号归属地查询

    调用阿里API实现手机号归属地查询 1.作者介绍 2.号码归属地介绍 2.1 什么是手机号码归属地? 2.2 为什么需要手机号码归属地? 2.3 手机号码归属地查询对个人的运用 3.调用阿里API实现 ...

最新文章

  1. 小波变换教程(1):基本原理
  2. spark2.2读写操作hive和mysql数据库
  3. 成功解决未授予用户在此计算机上的请求登录类型图文教程
  4. 专业文化计算机艺考生,专业课和文化课都优秀?那艺考生的你不知道这个就损失大了...
  5. 当我们在谈数字化转型的时候,我们在谈什么?
  6. 京东大数据研究院:智能马桶四年销量翻10倍
  7. 配置文件空格丢失问题
  8. SVN回滚代码时,提示冲突怎么办
  9. ARM资源免费下载——超级全面,力荐
  10. 论文阅读:Neural Motifs: Scene Graph Parsing with Global Context
  11. 计算机主机域名是,主机域名究竟是什么
  12. Visualizing HBase Flushes And Compactions
  13. 手机是如何做到精准定位的
  14. 一文读懂HTTP, HTTPS, SSL和TLS
  15. rabbitMQ队列解绑
  16. python 拦截windows弹窗广告_win10系统怎样拦截各种软件的广告弹窗
  17. sdlc esd.oracle.com,jdk下载安装
  18. 【无标题sdasd】
  19. pca图解读_利用R绘制PCA分析图(2)
  20. spring Boot 报错Failed to introspect Class [xxx] from ClassLoader

热门文章

  1. 【HashMap扩容相关的蛛丝马迹】位运算与取模的奇妙关系
  2. C# winform 登录 实现自动登录 和记住密码功能
  3. OS——文件管理系统磁盘的结构之搞清盘面和柱面
  4. Centos添加磁盘分区
  5. 【python日用】itertools.permutations用法
  6. 宏定义、define、defined、ifdef、ifndef、undef总结
  7. 【安全】Netgear R7000/R6400等多款路由器曝远程任意命令注入
  8. pat-get 与aptitude的区别 处理:下列软件包有未满足的依赖关系:
  9. 力扣leetcode之Java刷题121买卖股票的最佳时机
  10. 解决电脑联网后,电脑使用网络手机就用不了WIFI,手机联了WIFI电脑就用不了网络的问题