外部系统访问微信小程序云开发数据库样例

外部系统访问微信小程序云开发数据库样例

    • 话不多说,直接看代码和注释吧

自从开放了微信小程序的云开发功能,无论是程序员还是用户都能得到更好的体验,目前更是开放了访问微信小程序云开发数据库的api,以后做小程序的项目肯定会遇到外部系统访问小程序云开发数据库的场景,在此做一个样例。

话不多说,直接看代码和注释吧

public static void main(String[] args) {
        //想要获取小程序云数据库里是数据先要获取access_token,通过下面的api接口发送小程序appid和密钥,获取access_token
        String s=httpRequest("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=appid&secret=密钥","GET",null);
        //返回结果为{"access_token":"XX","expires_in":7200},其中XX为access_token,7200为时效,过了这个时效就要重新获取
        JSONObject jo = JSON.parseObject(s);
        Object at = jo.getString("access_token");
        String request = "{\"env\":\"环境名称\"," + "\"query\":\"db.collection(\\\"集合名称\\\").where({查询字段名称:\\\"字段值\\\"}).get()\"}";
        //获取到access_token,再创建一个用于查询的json(这里写了一个string类型的json数据),通过下面的api接口就可以获取到响应的数据,查询语句在json里写
        String result=httpRequest("https://api.weixin.qq.com/tcb/databasequery?access_token="+at,"POST",request);
        //查询成功的话会返回这样的结果{"errcode":0,"errmsg":"ok","pager":{"Offset":0,"Limit":10,"Total":1},"data":["{\"_id\":\"id\",\"_openid\":\"openid\",\"date\":\"2020-06-04\",\"department\":\"1\",\"name\":\"1\",\"phone\":\"1\",\"radio\":\"2\"}"]}
        System.out.println(result);

    }

    //处理http请求  requestUrl为请求地址  requestMethod请求方式,值为"GET"或"POST"
    public static String httpRequest(String requestUrl,String requestMethod,String outputStr){
        StringBuffer buffer=null;
        try{
            URL url=new URL(requestUrl);
            HttpURLConnection conn=(HttpURLConnection)url.openConnection();
            conn.setDoOutput(true);
            conn.setDoInput(true);
            conn.setRequestMethod(requestMethod);
            conn.connect();
            //往服务器端写内容 也就是发起http请求需要带的参数
            if(null!=outputStr){
                OutputStream os=conn.getOutputStream();
                os.write(outputStr.getBytes("utf-8"));
                os.close();
            }

            //读取服务器端返回的内容
            InputStream is=conn.getInputStream();
            InputStreamReader isr=new InputStreamReader(is,"utf-8");
            BufferedReader br=new BufferedReader(isr);
            buffer=new StringBuffer();
            String line=null;
            while((line=br.readLine())!=null){
                buffer.append(line);
            }
        }catch(Exception e){
            e.printStackTrace();
        }
        return buffer.toString();
    }

你可能感兴趣的:(外部系统访问微信小程序云开发数据库样例)