各种第三方接口使用

**

使用第三方接口注意:

**
1.参考文档
1.1:请求接入点/ API point
1.2:请求参数/ Request parameter
1.3:返回参数/ Return parameter
2.解析json
2.1:多层json嵌套
2.1:多层嵌套加数组
上面都ok了,那么就可以驾驭大部分api了。

易源:https://www.showapi.com/share(每天20次调用api次数)

//这里需要替换为你自己的showapi_appid和showapi_sign,你可以在这里找到 https://www.showapi.com/console#/myApp
ShowApiRequest req=new ShowApiRequest("http://route.showapi.com/64-19","showapi_appid","showapi_sign");
  req.addTextPara("com","zhongtong");
  String res=req.post();
  System.out.println(res);

易源有自己封装好的sdk,jar。适合小白使用。很好理解

聚合数据:https://www.juhe.cn/(无封装sdk,和易源一样,但是比易源次数多)
接口大全:https://www.free-api.com/(接口非常多,无封装sdk)

自写调用api方法(基本可以通用,适合大部分api接口):

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Map;

@WebServlet("/get")
public class JHData extends HttpServlet{
    public static final String APPKEY ="44c82f99d200d82949d9ba27ebd7c81c";
    public static final String APPKEY1="afb23abbb9583547bfaf8ee097967acd";
    public static final String APPKEY2="bd9ba4e73a8afdf03dad1a112416191d";

    //将map型转为请求参数型
    public static String urlencode(Map<String,Object> data) {
        StringBuilder sb = new StringBuilder();
        for (Map.Entry i : data.entrySet()) {
            try {
                sb.append(i.getKey()).append("=").append(URLEncoder.encode(i.getValue()+"","UTF-8")).append("&");
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }
        }
        return sb.toString();
    }
    /**
     *
     * @param strUrl 请求地址
     * @param params 请求参数
     * @param method 请求方法
     * @return  网络请求字符串
     * @throws Exception
     */
    public static String net(String strUrl, Map params,String method) throws Exception {
        HttpURLConnection conn = null;
        BufferedReader reader = null;
        String rs = null;
        try {
            StringBuffer sb = new StringBuffer();
//            if(method==null || method.equals("GET")){
//                strUrl = strUrl+"?"+urlencode(params);
//            }
            strUrl = strUrl+"?"+urlencode(params);
            URL url = new URL(strUrl);
            conn = (HttpURLConnection) url.openConnection();
//            if(method==null || method.equals("GET")){
//                conn.setRequestMethod("GET");
//            }else{
//                conn.setRequestMethod("POST");
//                conn.setDoOutput(true);
//            }
            conn.connect();
//            if (params!= null && method.equals("POST")) {
//                try {
//                    DataOutputStream out = new DataOutputStream(conn.getOutputStream());
//                    out.writeBytes(urlencode(params));
//                } catch (Exception e) {
//
//                }
//            }
            InputStream is = conn.getInputStream();
            reader = new BufferedReader(new InputStreamReader(is));
            String strRead = null;
            while ((strRead = reader.readLine()) != null) {
                sb.append(strRead);
            }
            rs = sb.toString();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (reader != null) {
                reader.close();
            }
            if (conn != null) {
                conn.disconnect();
            }
        }
//        String[] split = rs.split(",");
//        for (String a:split){
//            System.out.println(a);
//        }
        return rs;
    }

    //1.身份证信息查询

    public static void getRequest1(){
        String result =null;
        String url ="http://apis.juhe.cn/idcard/index";//请求接口地址
        Map params = new HashMap();//请求参数
        params.put("cardno","***********");//身份证号码
        params.put("dtype","");//返回数据格式:json或xml,默认json
        params.put("key",APPKEY);//你申请的key

        try {
            result =net(url, params, "GET");
            JSONObject object = JSONObject.fromObject(result);
            JSONObject result1=object.getJSONObject("result");
            System.out.println(object);
            String area=result1.getString("area");
            String sex=result1.getString("sex");
            String birthday=result1.getString("birthday");
            String verify=result1.getString("verify");
            System.out.println(area);
            System.out.println(sex);
            System.out.println(birthday);
            System.out.println(verify);

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    //1.二维码生成
    public static void getImg(){
        String result =null;
        String url ="http://apis.juhe.cn/qrcode/api";//请求接口地址
        Map params = new HashMap();//请求参数
        params.put("text","您好");//身份证号码
        params.put("dtype","");//返回数据格式:json或xml,默认json
        params.put("key",APPKEY1);//你申请的key

        try {
            result =net(url, params, "GET");
            JSONObject object = JSONObject.fromObject(result);
            JSONObject result1=object.getJSONObject("result");
            System.out.println(object);
            String base64_image=result1.getString("base64_image");
            System.out.println(base64_image);
           // req.setAttribute("erimg",base64_image);
            //req.getRequestDispatcher("index.jsp").forward(req,res);


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

  
    //1.天气信息查询

    public static void weather(){
        String result =null;
        String url ="http://apis.juhe.cn/simpleWeather/query";//请求接口地址
        Map params = new HashMap();//请求参数
        params.put("city","成都");//城市地址
        params.put("dtype","");//返回数据格式:json或xml,默认json
        params.put("key",APPKEY2);//你申请的key

        try {
            result =net(url, params, "GET");
            JSONObject object = JSONObject.fromObject(result);
            JSONObject result1=object.getJSONObject("result");
//            System.out.println(object);
            String city=result1.getString("city");
            JSONObject realtime=result1.getJSONObject("realtime");
            String temperature=realtime.getString("temperature");
            String humidity=realtime.getString("humidity");
            String info=realtime.getString("info");
            String wid=realtime.getString("wid");
            String direct=realtime.getString("direct");
            String power=realtime.getString("power");
            String aqi=realtime.getString("aqi");
            System.out.println(city+" :"+info+","+direct+","+power);
            JSONArray future =result1.getJSONArray("future");
//            System.out.println(future);
            for(int i=0;i<future.size();i++){
                JSONObject one=future.getJSONObject(i);
//                System.out.println(one);
                String date=one.getString("date");
                String temperature1=one.getString("temperature");
                String weather=one.getString("weather");
                String direct1=one.getString("direct");
                JSONObject wid1=one.getJSONObject("wid");
                String day=wid1.getString("day");
                String night=wid1.getString("night");
                System.out.println(date+","+temperature1+","+weather+","+direct1+","+day+","+night);
            }


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


    public static void main(String[] args) throws Exception {
        getRequest1();
        getImg();
        weather();
//
//        String result =null;
//        String url ="https://v1.alapi.cn/api/kd";//请求接口地址
//        Map params = new HashMap();//请求参数
//        params.put("number","75340310260237");//身份证号码
//        result =net(url, params, "GET");
//        JSONObject object = JSONObject.fromObject(result);
//        System.out.println(object);
//        JSONObject data=object.getJSONObject("data");
////        String nu=data.getString("nu");
////        String com=data.getString("com");
////        System.out.println(nu+","+com);
//        JSONArray info=data.getJSONArray("info");
//        for (int i=0;i<info.size();i++){
//            JSONObject index=info.getJSONObject(i);
//            String time=index.getString("time");
//            String content=index.getString("content");
//            System.out.println(time+","+content);
//            System.out.println("---------------------------------");
//
//        }

    }

}

发布了30 篇原创文章 · 获赞 1 · 访问量 855

猜你喜欢

转载自blog.csdn.net/weixin_45061669/article/details/105422490
今日推荐