安卓实现每日一句功能-一言API调用

当点击按钮时会随机返回一句名言,使用一言API是一个不错的选择,一言API是免费提供的。

 

相关网址

一言API官网地址:https://hitokoto.cn/

一言API的开发者文档地址:https://developer.hitokoto.cn/

 

一言API的简介

动漫也好、小说也好、网络也好,不论在哪里,我们总会看到有那么一两个句子能穿透你的心。我们把这些句子汇聚起来,形成一言网络,以传递更多的感动。如果可以,我们希望我们没有停止服务的那一天。

简单来说,一言指的就是一句话,可以是动漫中的台词,也可以是网络上的各种小段子。 或是感动,或是开心,有或是单纯的回忆。来到这里,留下你所喜欢的那一句句话,与大家分享,这就是一言存在的目的。

 

一言API的请求地址及相关参数

请求地址:

地址协议方法QPS 限制线路
v1.hitokoto.cnHTTPSAny3.5全球
international.v1.hitokoto.cnHTTPSAny10国外

 

请求参数:

参数可选说明
c见后表句子类型
encode见后表返回编码
charset见后表字符集
callback如:moe调用的异步函数
select默认:.hitokoto选择器。配合 encode=js 使用
min_length默认:0返回句子的最小长度(包含)
max_length默认:30返回句子的最大长度(包含)

 

句子类型(参数):

参数说明
a动画
b漫画
c游戏
d文学
e原创
f来自网络
g其他
h影视
i诗词
j网易云
k哲学
l抖机灵
其他作为 动画 类型处理

备注:可选择多个分类,例如: ?c=a&c=c

 

返回编码(参数):

参数说明
text返回纯洁文本
json返回格式化后的 JSON 文本
js返回指定选择器的同步调用函数。默认选择器为:.hitokoto
其他返回格式化后的 JSON 文本

 

字符集(参数):

参数说明
utf-8返回 utf-8 编码的内容
gbk返回 gbk 编码的内容。不支持与异步函数同用
其他返回 utf-8 编码的内容

 

接口测试

在这里我用到了Postman,返回句子类型是诗词

请求成功,返回JSON:

{
    "id": 5923,
    "uuid": "86847a8b-800a-4500-8720-e7620a4e63c9",
    "hitokoto": "晚日寒鸦一片愁。柳塘新绿却温柔。",
    "type": "i",
    "from": "鹧鸪天·晚日寒鸦一片愁",
    "from_who": "辛弃疾",
    "creator": "a632079",
    "creator_uid": 1044,
    "reviewer": 1044,
    "commit_from": "api",
    "created_at": "1586398485",
    "length": 16
}

 

核心代码展示

/**
     * @author 像向日葵一样~
     * 调用一言API,其中参数c等于i代表诗词,GET请求到JSON后取出诗词然后设置文本
     * 操作步骤:
     * 1.根据接口得到url
     * 2.创建connection对象
     * 3.设置请求方式
     * 4.连接
     * 5.得到响应码,得到响应流
     * 6.响应流转换为字符串
     * 7.根据字符串得到JSON对象
     * 8.从JSON对象中取得hitokoto键的值,即返回的诗词
     * 9.设置在文本框中
     */    
private void sendRequestWithHttpClient() {
        new Thread(new Runnable() {
            @Override
            public void run() {
                try {
                    String url1 = "https://v1.hitokoto.cn?c=i";
                    URL url = new URL(url1);
                    //得到connection对象。
                    HttpURLConnection connection = (HttpURLConnection) url.openConnection();
                    //设置请求方式
                    connection.setRequestMethod("GET");
                    //连接
                    connection.connect();
                    //得到响应码
                    int responseCode = connection.getResponseCode();
                    if (responseCode == HttpURLConnection.HTTP_OK) {
                        //得到响应流
                        InputStream inputStream = connection.getInputStream();
                        //将响应流转换成字符串
                        String result = is2String(inputStream);//将流转换为字符串。


                        JSONObject jsonObject = new JSONObject(result);
                        String value = jsonObject.optString("hitokoto");
                        wordText.setText(value);

                    
                    }

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

 

  • 3
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

像向日葵一样~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值