All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.xiongyingqi.util.PhoneNumberAddress Maven / Gradle / Ivy

package com.xiongyingqi.util;

import com.fasterxml.jackson.databind.ObjectMapper;

import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBElement;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Unmarshaller;
import javax.xml.transform.stream.StreamSource;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Random;

/**
 * Created by 瑛琪xiongyingqi.com on 2014/4/15 0015.
 */
public class PhoneNumberAddress {

    public static XmlProvince getMobileAddress(String mobileNumber) throws MalformedURLException {
        String urlString = "http://life.tenpay.com/cgi-bin/mobile/MobileQueryAttribution.cgi?chgmobile=" + mobileNumber;
        URL url = new URL(urlString);

        XmlProvince result = null;
        JAXBContext jc;
        try {
            jc = JAXBContext.newInstance(XmlProvince.class);
            Unmarshaller u = jc.createUnmarshaller();

            try {
                StreamSource streamSource = new StreamSource(url.openStream());
                JAXBElement element = u.unmarshal(streamSource, XmlProvince.class);
                result = element.getValue();
                EntityHelper.print(result);
            } catch (IOException e) {
                e.printStackTrace();
            }
        } catch (JAXBException e) {
            e.printStackTrace();
        }

//
//        SAXReader saxReader = new SAXReader();
//        try {
//            Document document = saxReader.read(url);
//
//
//            Element root = document.getRootElement();
//            for (Iterator iterator = root.elementIterator(); iterator.hasNext(); ) {
//                Element element = iterator.next();
//                EntityHelper.print(element.getName());
//                EntityHelper.print(element.getStringValue());
//            }
//        } catch (DocumentException e) {
//            e.printStackTrace();
//        }
//
//
//        String jsonString = null;
//        BufferedReader buffer;
//        StringBuffer sb = new StringBuffer();
////        URL url = new URL(urlString);
//        try {
//            InputStream in = url.openStream();
//
//            buffer = new BufferedReader(new InputStreamReader(in, "gb2312"));
//            String line = null;
//            while ((line = buffer.readLine()) != null) {
//                sb.append(line);
//            }
//            in.close();
//            buffer.close();
//            jsonString = sb.toString();
//            EntityHelper.print(jsonString);
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
        return result;
    }

    /**
     * Test the phone number from which the city is using Taobao API
     *
     * @return
     * @ param mobileNumber phone number
     */
    public static String calcMobileCity(String mobileNumber) throws MalformedURLException {
        ObjectMapper objectMapper = new ObjectMapper();

        String jsonString = null;
        String urlString = "http://tcc.taobao.com/cc/json/mobile_tel_segment.htm?tel=" + mobileNumber;
        StringBuffer sb = new StringBuffer();
        BufferedReader buffer;
        URL url = new URL(urlString);
        try {
            InputStream in = url.openStream();

//solve the garbage problem
            buffer = new BufferedReader(new InputStreamReader(in, "gb2312"));
            String line = null;
            while ((line = buffer.readLine()) != null) {
                sb.append(line);
            }
            in.close();
            buffer.close();
            // System.out.println(sb.toString());
            jsonString = sb.toString();
            EntityHelper.print(jsonString);
//replace \
            jsonString = jsonString.replaceAll("^[__]\\w{14}+[_ = ]+", "[");
            // System.out.println(jsonString+"]");
            String jsonString2 = jsonString + "]";
//json object into the STRING
//            array = JSONArray.fromObject(jsonString2);

//Get JSONArray of JSONObject object , easy to read array of key-value pairs in
//            jsonObject = array.getJSONObject(0);

        } catch (Exception e) {
            e.printStackTrace();
        }
//        return jsonObject.getString("province");
        return null;
    }

    /**
     * 
     * 
     * /cgi-bin/mobile/MobileQueryAttribution.cgi
     * Java/1.7.0_51
     * 59.40.152.213
     * chgmobile=15888888888
     * GET
     * 
     * 15888888888
     * 杭州 
     * 浙江 
     * 0
     * OK
     * 移动 
     * 
     * 
     */
    static class XmlProvince extends EntityHelper {
        private String chgmobile;
        private String city;
        private String province;
        private String retcode;
        private String retmsg;
        private String supplier;
        private String tid;

        public String getChgmobile() {
            return chgmobile;
        }

        public void setChgmobile(String chgmobile) {
            this.chgmobile = chgmobile;
        }

        public String getCity() {
            return city;
        }

        public void setCity(String city) {
            this.city = city;
        }

        public String getProvince() {
            return province;
        }

        public void setProvince(String province) {
            this.province = province;
        }

        public String getRetcode() {
            return retcode;
        }

        public void setRetcode(String retcode) {
            this.retcode = retcode;
        }

        public String getRetmsg() {
            return retmsg;
        }

        public void setRetmsg(String retmsg) {
            this.retmsg = retmsg;
        }

        public String getSupplier() {
            return supplier;
        }

        public void setSupplier(String supplier) {
            this.supplier = supplier;
        }

        public String getTid() {
            return tid;
        }

        public void setTid(String tid) {
            this.tid = tid;
        }
    }

    static class PhoneProvince {
        /**
         * 前缀
         */
        private String mts;
        /**
         * 省份
         */
        private String province;
        /**
         * 服务商
         */
        private String catName;
        private String telString;
        private String areaVid;
        private String ispVid;

        public String getMts() {
            return mts;
        }

        public void setMts(String mts) {
            this.mts = mts;
        }

        public String getProvince() {
            return province;
        }

        public void setProvince(String province) {
            this.province = province;
        }

        public String getCatName() {
            return catName;
        }

        public void setCatName(String catName) {
            this.catName = catName;
        }

        public String getTelString() {
            return telString;
        }

        public void setTelString(String telString) {
            this.telString = telString;
        }

        public String getAreaVid() {
            return areaVid;
        }

        public void setAreaVid(String areaVid) {
            this.areaVid = areaVid;
        }

        public String getIspVid() {
            return ispVid;
        }

        public void setIspVid(String ispVid) {
            this.ispVid = ispVid;
        }
    }


    /**
     * Calculate multiple numbers of attribution
     *
     * @return
     * @throws java.net.MalformedURLException
     * @ param mobileNumbers number list
     */
//    public static JSONObject calcMobilesCities(List mobileNumbers) throws MalformedURLException{
//        JSONObject jsonNumberCity = new JSONObject();
//        for(String mobileNumber : mobileNumbers){
//            jsonNumberCity.put(mobileNumber, calcMobileCity(mobileNumber));            ;
//        }
//        return jsonNumberCity;
//    }
    public static void main(String[] args) throws Exception {
        TimerHelper.getTime();
        Random random = new Random();

        for (int i = 0; i < 100; i++) {
            long number = 13000000000L + random.nextInt(1000000000);
            String testMobileNumber = "" + number;
//            System.out.println(getMobileAddress(testMobileNumber));
            ThreadPool.invoke(null, PhoneNumberAddress.class.getMethod("getMobileAddress", String.class), testMobileNumber);
        }
        ThreadPool.shutDown();
        System.out.println(TimerHelper.getTime());
//        System.out.println(calcMobilesCities(mobileList).toString());
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy