java微信公众号开发学习笔记(三)——免费api调用
1.免费api接口
到****搜索hellocat,参照柳逢的http://blog.****.net/lyq8479/article/category/1366622/2,检查程序是否对应,柳逢大神里边讲了很多很详细,我也是参照他的代码实现的。他里边有一些API模块已经被封了,无法使用,比如网易音乐、智能翻译,好像人脸识别和历史今天还可以用,如果你想开发一些有意思的功能,你得找到免费的aip。我上网找了很多免费api,发现avatardata(http://www.avatardata.cn/)还算比较良心,对于小规模公众号的免费使用已经可以了。
里边有很多免费的接口,需要进行身份认证方可长期使用,前提是网站不收费。。。。
2、利用正则表达处理数据
通常网站都会有接口调用说明,api格式,参数如何使用,返回类型是什么。有时候也不一定准确,你得自己实际测试一下,看看返回的类型到底是什么结构。如果是标准类型那好办多了,直接用JAVA里边的类处理数据就行,将结果返回给用户就行。如果返回结构是非标准的数据,那么此时就得利用正则表达式了,关于正则表达式主要是用来批量处理数据的,根据设定的处理格式,筛选出所有符合的数据。具体可以参照《正则表达式三十分钟入门》(https://www.baidu.com/link?url=l8ONZlHHDEzYF0aAsPl4RYIf8a8USiX0OHzd5BiDKS26lBKEdRoY_b-hg8uV4yzhcpFrfUGBPJmR1WTGLWdAI_&wd=&eqid=de5a098e0000803e00000006590e8a05),里边讲得很好很全,看一边操作一边,然后有具体的需求你再自己研究。比如我利用笑话api写了一个获取笑话返回结果的处理函数。没有什么技巧,设计好表达式,自己试一试看看是不是自己想要的!!!
3、笑话aip接口举例
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!