android之号码归属地
来源:互联网 发布:移动网络机顶盒破解 编辑:程序博客网 时间:2024/04/29 04:48
我们通过发送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 version="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>
0 0
- android之号码归属地
- Android开发之号码归属地查询
- Android实现号码归属地查询
- Android实现号码归属地查询
- Android设置来电号码归属地
- Android里实现号码归属地查询
- Android实现号码归属地查询
- android 如何关闭来电号码归属地
- Android实现号码归属地查询
- 号码归属地识别-Android电话应用
- 号码归属地查询---------------
- 号码归属地查询
- 号码归属地查询
- 号码归属地
- 号码归属地查询
- Android初学之安全卫士中号码归属地背景设置(弹出对话框)
- C# 号码归属地查询算法(根据Android来电归属地二进制文件查询修改)
- 仿360手机卫士之查询号码归属地
- 测试下
- 开篇
- seo优化的几个要点
- 建立符号服务器,支持多版本
- ASP.NET打開新窗口并傳值
- android之号码归属地
- 《31天成为IT服务达人》之精准运维
- delphi 插入数据时给字段赋空值
- swift 对象和类
- DB2 数据库删除不了问题分析
- ubuntu中netstat命令的用法
- iOS的影片播放 MediaPlayer 和 AVPlayer
- Swift编程语言入门视频教程(四)--循环语句
- “找不到或无法加载主类”该问题出现的一个可能原因