java查手机归属地

2019-12-26  本文已影响0人  炒面Z

查手机归属地信息

目前在网上找了很久发现查归属地的开方接口有以下三个,经测试后发现第三种更适合查归属地

import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.extern.slf4j.Slf4j;

import java.util.Date;
import java.util.List;

/**
 * @author ssm
 * @version V1.0
 * @description: 调用百度归属地查询API获取手机号归属地
 * @date 2019/12/26 16:15
 */
@Slf4j
public class PhoneUtils {
    
    public static PhoneRetBean parseAddressFromPhone(String phone) {
        if (!PhoneFormatCheckUtils.checkMobile(phone)) {
            log.error("PhoneUtils#getAddressFromPhone:[{}],手机号验证不通过!", phone);
            return null;
        }
        try {
            // 两个参数 手机号、当前时间戳
            String url = "http://mobsec-dianhua.baidu.com/dianhua_api/open/location?tel=%s";
            url = String.format(url, phone);
            String s = HttpUtil.get(url);
            if (log.isDebugEnabled()){
                log.debug(s);
            }
            return JSON.parseObject(s).getJSONObject("response").getObject(phone, new TypeReference<PhoneRetBean>() {
            });
        } catch (Exception e) {
            log.error("PhoneUtils#getAddressFromPhone:[{}],调用百度归属地查询接口出错!", phone, e);
            return null;
        }
    }
    
    /**
     * 批量获取
     * @param phones
     * @return
     */
    public static Map<String,PhoneRetBean> getAddressFromPhones(String... phones) {
        try {
            // 两个参数 手机号、当前时间戳
            String url = "http://mobsec-dianhua.baidu.com/dianhua_api/open/location?tel=%s";
            url = String.format(url, StringUtils.join(phones,","));
            String s = HttpUtil.get(url);
            if (log.isDebugEnabled()) {
                log.debug(s);
            }
            return JSON.parseObject(s).getObject("response",new TypeReference<Map<String,PhoneRetBean>>(){});
        } catch (Exception e) {
            log.error("PhoneUtils#getAddressFromPhone:[{}],调用百度归属地查询接口出错!", phones, e);
            return new HashMap<>();
        }
    }
    
    // just4test
    public static void main(String[] args) {
        PhoneRetBean retBean = PhoneUtils.getAddressFromPhone("15280851911");
        log.info(retBean.toString());
    }
    
    /**
     * @author ssm
     * @version V1.0
     * @description:
     * @date 2019/12/26 16:34
     */
    
    @NoArgsConstructor
    @Data
    public static class PhoneRetBean {
        
        private DetailBean detail;
        /**
         * location : 福建泉州移动
         * detail : {"area":[{"city":"泉州"}],"province":"福建","type":"domestic","operator":"移动"}
         */
        
        private String location;
        
        @NoArgsConstructor
        @Data
        public static class DetailBean {
            private List<AreaBean> area;
            private String operator;
            /**
             * area : [{"city":"泉州"}]
             * province : 福建
             * type : domestic
             * operator : 移动
             */
            
            private String province;
            private String type;
            
            @NoArgsConstructor
            @Data
            public static class AreaBean {
                /**
                 * city : 泉州
                 */
                
                private String city;
            }
        }
    }
}



上一篇 下一篇

猜你喜欢

热点阅读