博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理


在安卓开发中,肯定需要很多API接口, 比如天气获、快递实时信息、身份证号码查询和基本的短信验证码。



API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。


效果图

这里写图片描述


聚合数据介绍
聚合数据是一家国内最大的基础数据API提供商,专业从事互联网数据服务。免费提供从天气查询、空气质量、地图坐标到金融基金、电商比价、违章查询等各个领域的安全、稳定和高效的数据。开发者可以免费试用聚合数据API进行移动APP的快速开发,免除数据收集、维护等环节,大大降低开发周期及成本。因此我们可以采用聚合数据给我提供好的一套东西来进行短信验证码的功能的添加。

首先我们要做准备工作,使用聚合数据主要分为以下步骤:


第一步:注册聚合数据账号



进入聚合数据官网 https://www.juhe.cn/ 注册一个账号,完成注册后进入,”个人中心”——>“我的数据”点击申请数据如下图所示:


截图



第二步:点击QQ测吉凶进去申请。



申请的具体的条件自己填写,需要等待审核,申请成功之后你会得到APPKey,这个一个不规则的 String类型数值,是聚合数据提供给我们的唯一的、重要的一个类似密码一样,我们后面会用到它。


这里写图片描述



第三步:代码实现。


导入Volley.jar 包

从申请成功之后,我们在其的接口可以看到相关说明如图下,只是一个Json的post提交,所以我们需要Volly的第三方框架,即 Volly.jar 的包,Android Studio导入记得在Lib文件夹下,右击 As Lib。



这里写图片描述


GET获取到数据。

代码如下:


 /**
     * 解析接口
     */
    private void VolleyJson(String qq) {
        String url = "http://japi.juhe.cn/qqevaluate/qq?key=8d9160d4a96f2a6b5316de5b9d14d09d&qq=870189248" ;
        //创建队列
        RequestQueue request = Volley.newRequestQueue(this);
        //请求一个事件
        StringRequest requests = new StringRequest(Request.Method.GET, url, new Response.Listener<String>() {
            @Override
            public void onResponse(String s) {
                getJson(s);
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError volleyError) {
                Toast.makeText(ToActivity.this, "Error", Toast.LENGTH_SHORT).show();
            }
        });
        //添加到队列中
        request.add(requests);
    }
   /**
    * 剖析从服务器中返回的数据 json格式
    * {
    "error_code": 0,
    "reason": "success",
    "result": {
        "data": {
            "conclusion": "如龙得云,青云直上,智谋奋进,才略奏功",
            "analysis": "欲望难足希望高,计谋成功财力豪。"
        }
    }
}
    */
    private void getJson(String json) {
     try {

            JSONObject json1 = new JSONObject(json);//得到返回的数据
            JSONObject json2 = json1.getJSONObject("result");//对应剖析的result
            JSONObject json3 = json2.getJSONObject("data");//上一行代码剖析的result再一次剖析
            tv_result.setText("QQ号码测试结论:" + json3.getString("conclusion") + "\n" + "结论分析:" + json3.getString("analysis"));

        } catch (JSONException e) {
            e.printStackTrace();
        }
    }
}


代码部分说明


会Json数据剖析的同学们都知道,我们已经在聚合数据提供的网址请求 URL 链接里写入了我们的请求的参数,不难看出上面代码的QQ参数是 870189248,提交参数给了聚合数据,于是那边也是返回一段Json格式的数据给我们,所以,我们在其返回给我们的数据中剖析即可是我们想要的数据。


别忘了在清单文件加 联网的权限哦~

 <uses-permission android:name="android.permission.INTERNET"></uses-permission>








身份证号码查询

身份证查询和上面的qq测吉凶都是基本差不多的,只是提交的地址略有不同,从身份证查询的文档说明 如下,可以看到具体的请求网址案列。此刻,我们只需要从服务器返回的数据中提取数据加以剖析即可。



这里写图片描述



代码如下:


 //点击事件
        btn_get.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //请求网址,其中参数4417811908025112是身份证号码
              final String url = "http://apis.juhe.cn/idcard/index?cardno=441781199508025112&dtype=json&key=b7887bb8eaf2f8a2bc3b190a563af327";
                //1.定义一个请求队列
                RequestQueue request = Volley.newRequestQueue(MainActivity.this);
                //2.请求一个事件
                StringRequest string = new StringRequest(Request.Method.GET, url, new Response.Listener<String>() {
                    @Override
                    public void onResponse(String s) {
                        try {
                            JSONObject json1 = new JSONObject(s);
                            JSONObject json2 = json1.getJSONObject("result");
                            tv_json.setText("区域:" + json2.getString("area") +
                                    "\n" + "性别:" + json2.getString("sex")+
                                    "\n" +"生日" +
                                    ":"+json2.getString("birthday"));
                        } catch (JSONException e) {
                            e.printStackTrace();
                        }
                    }
                }, new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError volleyError) {

                    }
                });
                //3.添加到队列
                request.add(string);
            }
        });

请支持原文博客:http://blog.csdn.net/xh870189248/article/details/54234199

源码下载:http://download.csdn.net/detail/xh870189248/9732615