Android编程实现号码归属地查询的方法_安卓软件开发教程-查字典教程网
Android编程实现号码归属地查询的方法
Android编程实现号码归属地查询的方法
发布时间:2016-12-28 来源:查字典编辑
摘要:本文实例讲述了Android编程实现号码归属地查询的方法。分享给大家供大家参考,具体如下:我们通过发送XML访问WebService就可以实...

本文实例讲述了Android编程实现号码归属地查询的方法。分享给大家供大家参考,具体如下:

我们通过发送XML访问 WebService就可以实现号码的归属地查询,我们可以使用代理服务器提供的XML的格式进行设置,然后请求提交给服务器,服务器根据请求就会返回给一个XML,XML中就封装了我们想要获取的数据。

发送XML

1.通过URL封装路径打开一个HttpURLConnection

2.设置请求方式,Content-Type和Content-Length

XML文件的Content-Type为:application/soap+xml; charset=utf-8

3.使用HttpURLConnection获取输出流输出数据

WebService

1.WebService是发布在网络上的API,可以通过发送XML调用,WebService返回结果也是XML数据

2.WebService没有语言限制,只要可以发送XML数据和接收XML数据即可

3.http://www.webxml.com.cn/网站上提供了一些WebService服务,我们可以对其进行调用

4.http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx?op=getMobileCodeInfo中提供了电话归属地查询的使用说明

效果图:

核心代码:

public class XmlService { public String query(String num) throws Exception { InputStream in = this.getClass().getClassLoader().getResourceAsStream("query.xml"); byte[] data = LoadUtils.load(in); String xml = new String(data); //替换 xml = xml.replace("#", num); byte[] sendData = xml.getBytes("UTF-8"); //发送到代理的地址上 URL url = new URL("http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx"); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("POST"); conn.setRequestProperty("Content-Type", "application/soap+xml; charset=utf-8"); conn.setRequestProperty("Content-Length", String.valueOf(sendData.length)); //将请求的xml发送出去 conn.setDoOutput(true); conn.getOutputStream().write(sendData); //获取从服务器传回来的数据 if (conn.getResponseCode() == 200) return parse(conn.getInputStream()); return null; } //解析流拿到getMobileCodeInfoResult中的数据 private String parse(InputStream inputStream) throws Exception { XmlPullParser parser = Xml.newPullParser(); parser.setInput(inputStream, "UTF-8"); //查找getMobileCodeInfoResult标签,获取标签中的数据 for (int event = parser.getEventType(); event != XmlPullParser.END_DOCUMENT; event = parser.next()) switch (event) { case XmlPullParser.START_TAG: if ("getMobileCodeInfoResult".equals(parser.getName())) return parser.nextText(); } return null; } }

发送的xml封装了电话号码(query.xml):

<"1.0" encoding="utf-8"?> <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"> <soap12:Body> <getMobileCodeInfo xmlns="http://WebXml.com.cn/"> <mobileCode>#</mobileCode> <userID></userID> </getMobileCodeInfo> </soap12:Body> </soap12:Envelope>

希望本文所述对大家Android程序设计有所帮助。

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新安卓软件开发学习
    热门安卓软件开发学习
    编程开发子分类