java微信公众号开发学习笔记(三)——免费api调用

    1.免费api接口

    到****搜索hellocat,参照柳逢的http://blog.****.net/lyq8479/article/category/1366622/2,检查程序是否对应,柳逢大神里边讲了很多很详细,我也是参照他的代码实现的。他里边有一些API模块已经被封了,无法使用,比如网易音乐、智能翻译,好像人脸识别和历史今天还可以用,如果你想开发一些有意思的功能,你得找到免费的aip。我上网找了很多免费api,发现avatardata(http://www.avatardata.cn/)还算比较良心,对于小规模公众号的免费使用已经可以了。

java微信公众号开发学习笔记(三)——免费api调用

   里边有很多免费的接口,需要进行身份认证方可长期使用,前提是网站不收费。。。。

   2、利用正则表达处理数据

    通常网站都会有接口调用说明,api格式,参数如何使用,返回类型是什么。有时候也不一定准确,你得自己实际测试一下,看看返回的类型到底是什么结构。如果是标准类型那好办多了,直接用JAVA里边的类处理数据就行,将结果返回给用户就行。如果返回结构是非标准的数据,那么此时就得利用正则表达式了,关于正则表达式主要是用来批量处理数据的,根据设定的处理格式,筛选出所有符合的数据。具体可以参照《正则表达式三十分钟入门》(https://www.baidu.com/link?url=l8ONZlHHDEzYF0aAsPl4RYIf8a8USiX0OHzd5BiDKS26lBKEdRoY_b-hg8uV4yzhcpFrfUGBPJmR1WTGLWdAI_&wd=&eqid=de5a098e0000803e00000006590e8a05),里边讲得很好很全,看一边操作一边,然后有具体的需求你再自己研究。比如我利用笑话api写了一个获取笑话返回结果的处理函数。没有什么技巧,设计好表达式,自己试一试看看是不是自己想要的!!!

    3、笑话aip接口举例

java微信公众号开发学习笔记(三)——免费api调用

 public static String DuanZi() {  
    StringBuffer contentMsg = new StringBuffer();   
        // 组装查询地址  
        String requestUrl = "http://api.avatardata.cn/Joke/NewstJoke?key=xxxxxxxxxxxxxxxxx&page={keyWord}&rows=3";  
        // 对参数q的值进行urlEncode utf-8编码 
        int max=10;
        Random random = new Random();
        int s = random.nextInt(max);
        requestUrl = requestUrl.replace("{keyWord}", String.valueOf(s));   
        // 查询并解析结果  
        try {  
            // 查询并获取返回结果  
            String json = httpRequest(requestUrl);  
            // 通过Gson工具将json转换成TranslateResult对象 
            String DZInfo =null;
            // 通过Gson工具将json转换成TranslateResult对象 
            Pattern p = Pattern.compile("(?<=ent\":\")(.*?)\"hashId\"");                  
            Matcher m = p.matcher(json); 
            while(m.find()) {                               
               // 设置普通品质音乐链接 
            DZInfo = m.group().replace(",\"hashId\"", "");
            DZInfo = DZInfo.replace("\"", "");      
            contentMsg.append("  ").append(DZInfo).append(emoji(0x1F61C)).append("\n");
           }
        } catch (Exception e) {  
            e.printStackTrace();  
            contentMsg.append("亲,段子你给我讲一个嘛!");  
        }  

    4、举一反三

    it's your shoutime!