易源API 查询电话号码 归属地信息

易源API 查询电话号码 归属地信息

第一步:获取appid 和 密钥

使用前提:注册成为会员

登录下面网址--点击 接口使用者--我的应用--获取appid 和 密钥

https://www.showapi.com/apiGateway/view?apiCode=6

第二步:导入依赖包

<dependency>
    <groupId>com.showapi.javasdk</groupId>
    <artifactId>com.showapi.javasdk</artifactId>
    <version>0.0.1</version>
</dependency>

第三步:调用接口,获取电话号码信息

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * 获取电话号码信息的工具
 */
public class CellphoneUtil {
    private static final String APPID = "146218";//appid
    private static final String SHOWAPI_SIGN = "12af3324de534f7b";//密钥为上面获取的密钥,此处仅为展示密钥

    /**
     * 获取电话号码信息的工具
     *  num:电话号码
     *  showapi_appid:appid
     *  showapi_timestamp:当前时间 格式:yyyyMMddHHmmss
     *  showapi_sign:密钥
     */
    public static String getCellphoneInfo(String cellphone) throws IOException {
        String format1 = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date());
        URL u = new URL("https://route.showapi.com/6-1?num="+cellphone+"&showapi_appid="+APPID+"&showapi_timestamp="+format1+"&showapi_sign="+SHOWAPI_SIGN);
        InputStream in = u.openStream();
        ByteArrayOutputStream out = new ByteArrayOutputStream();
        try {
            byte buf[] = new byte[1024];
            int read = 0;
            while ((read = in .read(buf)) > 0) {
                out.write(buf, 0, read);
            }
        } finally {
            if ( in != null) {
                in .close();
            }
        }
        byte b[] = out.toByteArray();
        return new String(b, "utf-8");
    }
}

第四步:测试

导入huttool的包,便于解析json数据

<dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.1.3</version>
        </dependency>
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;

public static void main(String[] args) throws IOException {
        String cellphoneInfo = getCellphoneInfo("17313115223");
        System.out.println(cellphoneInfo);
        JSONObject jo = JSONUtil.parseObj(cellphoneInfo);
        System.out.println(jo);
        JSONObject jo1 = jo.getJSONObject("showapi_res_body");
        System.out.println(jo1);

        String prov1 = jo1.getStr("prov");
        System.out.println("省==" + prov1);

        String city = jo1.getStr("city");
        System.out.println("市==" + city);

        String name = jo1.getStr("name");
        System.out.println("运营商==" + name);

        String type = jo1.getStr("type");
        System.out.println("运营商类型==" + type);//1为移动  2为电信  3为联通   -1为未知
    }

结果如下:

{
                  "showapi_res_error": "",
                  "showapi_res_id": "ebf6ba3a91df4f81bc7bb238a78c8417",
                  "showapi_res_code": 0,
                  "showapi_res_body": {"remark":"","name":"电信173卡","ret_code":0,"postCode":"610000","prov":"四川","num":1731311,"cityCode":"510100","city":"成都市","provCode":"510000","areaCode":"028","type":2}
                }

{"showapi_res_error":"","showapi_res_id":"ebf6ba3a91df4f81bc7bb238a78c8417","showapi_res_body":{"areaCode":"028","provCode":"510000","city":"成都市","cityCode":"510100","num":1731311,"name":"电信173卡","remark":"","postCode":"610000","type":2,"ret_code":0,"prov":"四川"},"showapi_res_code":0}
{"areaCode":"028","provCode":"510000","city":"成都市","cityCode":"510100","num":1731311,"name":"电信173卡","remark":"","postCode":"610000","type":2,"ret_code":0,"prov":"四川"}
省==四川
市==成都市
运营商==电信173卡
运营商类型2

注意事项:

        1.可以将上面抽取成工具,其他地方方便调取。

        2.普通会员 每天只能调用100次,获取更多次数,需升级会员(这个有点坑,公司有钱随意)

        3.还有其他公司也可以解析手机信息,如百度,但是没有找到,所以用易源做了个demo.

发布了31 篇原创文章 · 获赞 3 · 访问量 885

猜你喜欢

转载自blog.csdn.net/S_L__/article/details/104327747