java实现身份证归属地查询

采用的是聚合网站的接口。json解析用的Gson库。下载地址:http://download.csdn.net/detail/bjq1016/8225447

两个JavaBean:

package com.itfanr.IDCard;

/**
 * Created by itfanr on 14/12/4.
 */
public class ResultInfo {

    private int resultcode ;
    private  String reason ;

    public Person getResult() {
        return result;
    }

    public void setResult(Person result) {
        this.result = result;
    }

    private Person result ;
    private int error_code ;

    public int getResultcode() {
        return resultcode;
    }

    public void setResultcode(int resultcode) {
        this.resultcode = resultcode;
    }

    public String getReason() {
        return reason;
    }

    public void setReason(String reason) {
        this.reason = reason;
    }

    public int getError_code() {
        return error_code;
    }

    public void setError_code(int error_code) {
        this.error_code = error_code;
    }

  public String toString(){
      return "ResutltInfo-> "+ "resultcode: "+ this.getResultcode()
              +" reason: "+this.getReason()+"\n"+"result: "+ this.getResult()
              +"\n"+"error_code: "+ this.getError_code() ;
  }
}
package com.itfanr.IDCard;

/**
 * Created by itfanr on 14/12/4.
 */
public class Person {
    private String area ;
    private String sex ;
    private  String birthday ;
    private String verify;

    public String getVerify() {
        return verify;
    }

    public void setVerify(String verify) {
        this.verify = verify;
    }

    public String getArea() {
        return area;
    }

    public void setArea(String area) {
        this.area = area;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public String getBirthday() {
        return birthday;
    }

    public void setBirthday(String birthday) {
        this.birthday = birthday;
    }

    public String toString(){
        return "Person info-> "+ "area: "+ this.getArea()
                + " birthday: " + this.getBirthday()
                +" sex: "+ this.getSex() + " verify: "+this.getVerify();
    }
}

查询类,get方式请求数据:

package com.itfanr.IDCard;

/**
 * Created by itfanr on 14/12/4.
 */

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL ;
import  java.net.HttpURLConnection ;
public class Search {

    private String key ;
    public Search(String key ) {
        this.key =key ;

    }

    public  String seatchID(String id){
        String url = "http://apis.juhe.cn/idcard/index?key="+this.key+ "&cardno="+ id ;
        URL urlNet = null ;
        InputStream is = null ;
        ByteArrayOutputStream bao = null ;
        String result = null ;
        try {
            urlNet = new URL(url);
            try {
                HttpURLConnection conn = (HttpURLConnection)urlNet.openConnection() ;
                conn.setReadTimeout(5*1000 );
                conn.setRequestMethod("GET");
                 is = conn.getInputStream() ;
                int len = -1 ;
                byte[] buf = new byte[128] ;
                bao = new ByteArrayOutputStream() ;
                while ((len = is.read(buf))!=-1){
                    bao.write(buf,0,len);

                }
                bao.flush();
                result = new String(bao.toByteArray()) ;
            } catch (IOException e) {
                e.printStackTrace();
            }
        } catch (MalformedURLException e) {
            e.printStackTrace();
        }finally {
            if (is!=null){
                try {
                    is.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if (bao!=null){
                try {
                    bao.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }

        return result ;

    }
}

测试类:

package com.itfanr.IDCard;

/**
 * Created by itfanr on 14/11/23.
 */
import  com.google.gson.Gson ;
public class Test {
    public  static void  main(String args[]){

        Search s = new Search("your_key" ) ;
        String result = s.seatchID("330326198903081211");

        Gson gson = new Gson() ;
        ResultInfo resultInfo  = gson.fromJson(result, ResultInfo.class);
        ;
        System.out.println(resultInfo);

    }

}

输出结果:

ResutltInfo-> resultcode: 203 reason: 身份证校验位不正确
result: Person info-> area: 浙江省温州市平阳县 birthday: 1989年03月08日 sex: 男 verify: 该身份证号校验位不正确
error_code: 203803
时间: 2024-12-20 06:46:22

java实现身份证归属地查询的相关文章

【原创】Java实现手机号码归属地查询

网络上已经有很多的手机号码归属地查询的API接口,但是这些接口总是有一些大大小小的缺陷. 总结一下这些缺陷: 1.要直接将它的搜索框链接形式粘到自己的页面,点击查询的时候还要跳转到他们的网站来展示归属地结果 2.提供接口的API,一般都要求付费,或者一天只有免费的限定查询次数 3.有些博客文档中的API已经过于老旧,尝试的时候,已经404Not Found的了 所以写篇博客,供正在做手机归属地查询的小伙伴参考. 思路: ->我找到一个拍拍网的接口,可以通过curl直接传手机号码来进行查询,并且会

身份证归属地查询免费api接口代码

描写叙述 :依据身份证编号 查询归属地信息. 身份证实体类: package org.wx.xhelper.model; /** * 身份证实体类 * @author wangxw * @version 1.0 * @date Jul 11, 2014 10:46:54 AM */ public class IdCard { // 身份证号码 private String idCard; // 出生日期 private String born; // 性别 private String sex;

Java调用免费的WebService示例【天气预报】【国内手机号码归属地查询】

1.免费的WebService地址:http://www.webxml.com.cn/zh_cn/index.aspx 提供了例如:天气预报,手机归属地查询等很多Web服务. 2.调用天气预报服务示例: 使用JDK自带的wsimport命令生成客户端代码: wsimport -keep http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl 发现抛出如下异常: 后来在网上找到了http://blog.sina.com.cn/

java 手机号码归属地查询

下面是利用第三方接口实现手机号码归属地查询 (复制请标明出处或留言) package com.test.yyc; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; import ja

012_04号码归属地查询的四种方式

1 package com.example.day12_04phonenumberqurey; 2 3 import java.io.InputStream; 4 import java.net.HttpURLConnection; 5 import java.net.URL; 6 import org.apache.http.Header; 7 import org.json.JSONException; 8 import org.json.JSONObject; 9 import org.x

手机归属地查询

手机归属地查询 效果图: 分析: 1.传递多个参数,用一个类就好 2.打开数据库 private SQLiteDatabase database; database=SQLiteDatabase.openOrCreateDatabase(file, null); file是数据库的路径 3.在逻辑中多加判断 比如是否获取到正确的手机号 比如我们操作的字符串是否为空 比如时候获取正确参数 4.通过文件流来实现释放APK中包中的数据库文件到手机本地 5.需要用的数据库放在assets目录中 buff

百度手机号码归属地查询api与返回json处理

前天无意间在网上看到百度ApiStore,然后好奇就进去看了看.正好最近在某博培训Android,刚学到java基础.抱着锻炼的心态选择手机号码归属地查询api进行练手.api地址 (http://apis.baidu.com/apistore/mobilephoneservice/mobilephone).百度官方已经给出请求示例 .我们只需要对请求结果json进行解析就可以. Java请求示例: 1 String httpUrl = "http://apis.baidu.com/apisto

通过WebService获取归属地查询

1.本博文不涉及WebService的基础知识. 2.通过免费的WebService实现归属地查询. 3.下面的url是wsdl文件的地址 http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsdl 4.首先建一个动态的Web工程或者Java工程也可以. 5.打开cmd窗口将路径定位到工程的src下.(我的工作路径是D:\workspace\day6-18phone_ws\src) 6.然后如图进行操作,然后回车. 解释:

本地的手机号码归属地查询-oracle数据

最近做的项目中,有个功能是手机归属地查询,因为项目要在内网下运行,所以不能用提供的webservice,只好在网上找手机归属地的数据,很多都是access的,我们的项目是用oracle,只好自己转吧,转过来的提供到网上,方便大家使用.数据还是比较新的,是2014年的. 下面是部分代码,如果需要全部代码,可以直接下载. TabMobileServiceImpl.java package com.zhouyu.service.impl; import java.util.List; import o