首页 > 编程知识 正文

数据接口方式,调用接口数据

时间:2023-05-03 08:08:35 阅读:231022 作者:582

API数据接口-聚合数据

​ xml和 json 是现今互联网中常用的两种数据交换格式,两种格式都可以进行网络数据交换,数据存储,配置文件,但由于两种文件不同的优缺点,xml主要用于配置文件,json主要应用于网络数据交换。本文通过申请聚合API数据接口,分别使用xml和json的方式解析该API数据。申请方式可以进入聚合数据官方进行申请(聚合官方)。聚合数据提供了很多的网络API接口,很方便开发者使用。

​ 我在聚合数据申请了一个手机号码归属地查询的接口,请求示例如下图:

该接口默认返回json的格式,如果希望返回xml格式可以在请求示例中加入dtype=xml,具体如下:

(apis.juhe.cn/mobile/get?phone=13429667914&dtype=xml&key=您申请的key)

现在只要在浏览器中输入该网址,就可以获得该API接口返回的xml数据。(这是我申请的API接口请求)。返回结果如下:

返回xml格式

<root><resultcode>200</resultcode><reason>Return Successd!</reason><result><province>浙江</province><city>杭州</city><areacode>0571</areacode><zip>310000</zip><company>移动</company><card/></result><error_code>0</error_code></root>

返回json格式

{"resultcode":"200", "reason":"Return Successd!", "result":{ "province":"湖北", "city":"荆州", "areacode":"0716", "zip":"434000", "company":"电信", "card":"" }, "error_code":0} xml解析

​ Dom4j 是一个用于处理 XML 的开源框架,该框架与 XPath 集成在一起,并完全支持 DOM、SAX、JAXP 和 Java 平台。接下来,使用Dom4j 解析该xml数据。解析代码如下:

public static void main(String[] args) throws IOException, DocumentException, SAXException { String phone = "1839863";//输入手机号或手机号前7位 URL url = new URL("http://apis.juhe.cn/mobile/get?phone="+phone+"&dtype=xml&key=d8da722db792a72defe63dd22f6d87f3"); URLConnection urlConnection = url.openConnection(); InputStream is = urlConnection.getInputStream(); SAXReader sr = new SAXReader(); Document read = sr.read(is); Element rootElement = read.getRootElement(); Element resultcode = rootElement.element("resultcode"); if("200".equals(resultcode.getText())){ Element result = rootElement.element("result"); Element province = result.element("province"); Element city = result.element("city"); System.out.println("号码归属地:"+province.getText()+"省"+city.getText()+"市(区)"); } } json解析

json解析有四种方式,这里使用谷歌推出的Gson进行json的解析。解析代码如下:

public static void main(String[] args) throws IOException { String phone = "1736234"; URL url = new URL("http://apis.juhe.cn/mobile/get?phone="+phone+"&key=d8da722db792a72defe63dd22f6d87f3"); URLConnection urlConnection = url.openConnection(); Reader is = new InputStreamReader(url.openStream()); Gson g = new Gson(); HashMap data = g.fromJson(is, HashMap.class); LinkedTreeMap result = (LinkedTreeMap)data.get("result"); System.out.println("号码归属地:"+result.get("province")+"省"+result.get("city")+"市"); }

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。