Model.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>$mobile</mobileCode>      <userID></userID>    </getMobileCodeInfo>  </soap12:Body></soap12:Envelope>

PhoneNumberInfo.java

package com.zontin.android.util;import java.io.InputStream;import java.io.OutputStream;import java.net.HttpURLConnection;import java.net.URL;import org.xmlpull.v1.XmlPullParser;import android.util.Xml;public class PhoneNumberInfo {public static String findAddress(String mobile) throws Exception {        InputStream is = PhoneNumberInfo.class.getClassLoader()                .getResourceAsStream("Model.xml");        byte[] data = StreamTool.readStream(is);        String xml = new String(data, "UTF-8");        String soap = xml.replaceAll("\\$mobile", mobile);        byte[] result = soap.getBytes("UTF-8");        String path = "http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx";        URL url = new URL(path);        HttpURLConnection conn = (HttpURLConnection) url.openConnection();        conn.setRequestMethod("POST");        conn.setDoOutput(true);        conn.setConnectTimeout(5 * 1000);         conn.setRequestProperty("Content-Type",                "application/soap+xml; charset=utf-8");        conn.setRequestProperty("Content-Length", String.valueOf(result.length));        OutputStream os = conn.getOutputStream();        os.write(result);        os.flush();        os.close();         InputStream isSocp = conn.getInputStream();        return parse(isSocp);    }     public static String parse(InputStream is) throws Exception {        XmlPullParser parser = Xml.newPullParser();        parser.setInput(is, "UTF-8");        int event = parser.getEventType();        while (event != XmlPullParser.END_DOCUMENT) {            switch (event) {            case XmlPullParser.START_TAG:                if ("getMobileCodeInfoResult".equals(parser.getName())) {                    return parser.nextText();                }                break;            }            event = parser.next();        }        return null;    }}

StreamTool.java

package com.zontin.android.util;import java.io.ByteArrayOutputStream;import java.io.InputStream;public class StreamTool {/**     * 读取输入流数据     *     * @param is     * @return     * @throws Exception     */     public static byte[] readStream(InputStream is) throws Exception {        ByteArrayOutputStream os = new ByteArrayOutputStream();        byte[] buffer = new byte[2048];        int len = 0;        while ((len = is.read(buffer)) != -1) {            os.write(buffer, 0, len);        }        is.close();        return os.toByteArray();    }}

以上准备好现在就可以调用了:

try {        Log.d("QY", "XXX号码的归属地信息:"+PhoneNumberInfo.findAddress( "这里传入号码"));        } catch (Exception e) {            Log.d("QY", "查询失败"+e.toString());        }


更多相关文章

  1. android ListView内数据的动态添加与删除
  2. Android——百度APIstore+Json——获取新闻频道+新闻数据
  3. Android使用自带JSONObject解析JSON数据
  4. Android之数据存储-手机存储中
  5. 手动修改Android数据库数据
  6. Android批量插入数据
  7. Android:如何关/启 自动同步(Auto Sync )和背景数据(Background data
  8. Android 利用handler传递数据
  9. Android自动判定输入的是电话号码还是网址

随机推荐

  1. MySQL InnoDB row_id边界溢出验证的方法
  2. 详解Mysql5.7自带的压力测试命令mysqlsla
  3. MySQL中主键与rowid的使用陷阱总结
  4. 清理Mysql general_log的方法总结
  5. mysql 5.7.25 压缩版安装配置方法图文教
  6. mysql 5.7.25 安装配置方法图文教程
  7. 安装mysql 8.0.17并配置远程访问的方法
  8. mysql 5.7.27 winx64安装配置方法图文教
  9. MySQL服务器登陆故障ERROR 1820 (HY000)
  10. mysql5.7以上版本配置my.ini的详细步骤