当前位置:首页 > 芯闻号 > 充电吧
[导读]Model.xml$mobilePhoneNumberInfo.javapackage com.zontin.android.util; import java.io.InputStream; im


Model.xml


$mobile


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());
        }




本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭