本文实例讲述了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):
<?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>
希望本文所述对大家Android程序设计有所帮助。
您可能感兴趣的文章:Android组件WebView编写有道词典小案例分享Android 有道词典的简单实现方法介绍Android优化查询加载大数量的本地相册图片浅析Android手机卫士之号码归属地查询Android手机号码归属地的查询Android编程操作联系人的方法(查询,获取,添加等)Android中的SQL查询语句LIKE绑定参数问题解决办法(sqlite数据库)Android 软件自动更新功能实现的方法android实现倒计时功能代码Android实现上传文件功能的方法Android实现有道辞典查询功能实例详解