根据身份证号获取相关信息(籍贯、性别、出生日期...)

根据身份证号获取相关信息(籍贯、性别、出生日期…)

首先我的只是个demo,身份证号也是写死的。仅供参考!
通过访问其他HTTP接口,将身份证号当作参数。调用接口返回相关信息

效果展示:

**接口地址及参数:**(idcard为身份证号,idcard和app_secret为掉接口必传值)
https://www.mxnzp.com/api/idcard/search?idcard=330326198903081211
&app_id=8cjgvbpphsnhqhtn&app_secret=QVZqNDkzcU52OHJjdmg1cXlqZ1FiQT09

**返回结果示例:**(实际返回是JSON字符串,需要处理一下)
{
    "code": 1,
    "msg": "数据返回成功!",
    "data": {
        "idCardNum": "330326198903081211",
        "address": "浙江省温州市平阳县",
        "birthday": "1989年03月08日",
        "sex": "男"
    }
}

代码展示:

前期准备(JSON字符串 转换为 JSON对象):

需要在pom.xml里加入依赖。
加入此依赖可以直接调用方法将JSON字符串转换为JSON对象

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.15</version>
</dependency>
doGet(String url, Map<String, String> param);这个方法就是调用接口,返回访问结果。
/**
 * @author Java小白技术控
 * date 2022/6/14 16:29
 */
public class IDCardUtil {
    /**
     * 只做通过身份证获取相关信息,没有做身份证的校验
     * @param args
     */
    public static void main(String[] args) {
        //1.请求参数准备
        Map<String,String> reqmMap = new HashMap<>();
        reqmMap.put("idcard", "330326198903081211");//身份证号
        reqmMap.put("app_id", "edu0qjlhqnfmueox");//调用此接口必传   -----   不用动
        reqmMap.put("app_secret", "dHAxQjFtTzlsbXZ1UUtOQkN4QmZTQT09");//调用此接口必传  -----   不用动
        String url = "https://www.mxnzp.com/api/idcard/search";//接口路径
        String result = doGet(url, reqmMap);//调用接口,返回结果数据
        //返回结果为Json字符串,需要处理。
        JSONObject json = JSONObject.parseObject(result);
        if(json == null){
            System.out.println("访问失败!!!");
            return;
        }
        Integer code = (Integer) json.get("code");
        if(code == 1){//找到对应数据
            JSONObject data = (JSONObject) json.get("data");
            String sex = (String) data.get("sex");
            String address = (String) data.get("address");
            String birthday = (String) data.get("birthday");
 			System.out.println("address:"+address+"\n"+"birthday:"+birthday+"\n"+"sex:"+sex+"\n");
        }else{//未找到对应数据
            String msg = (String) json.get("msg");
            System.out.println("访问失败:"+msg);
        }
    }



    public static String doGet(String url, Map<String, String> param) {
        // 创建Httpclient对象
        CloseableHttpClient httpclient = HttpClients.createDefault();
        String resultString = "";
        CloseableHttpResponse response = null;
        try {
            // 创建uri
            URIBuilder builder = new URIBuilder(url);
            if (param != null) {
                for (String key : param.keySet()) {
                    builder.addParameter(key, param.get(key));
                }
            }
            URI uri = builder.build();
            // 创建http GET请求
            HttpGet httpGet = new HttpGet(uri);
            // 执行请求
            response = httpclient.execute(httpGet);
            // 判断返回状态是否为200
            if (response.getStatusLine().getStatusCode() == 200) {
                resultString = EntityUtils.toString(response.getEntity(), "UTF-8");
            }else{
                resultString = EntityUtils.toString(response.getEntity(), "UTF-8");
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                if (response != null) {
                    response.close();
                }
                httpclient.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return resultString;
    }

}

最后展示一下效果(我只是在控制台输出一下):

在这里插入图片描述


版权声明:本文为ZPJ6969原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。