一言API的简介

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

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

 

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

请求地址:

地址

协议

方法

QPS 限制

线路

v1.hitokoto.cn

HTTPS

Any

3.5

全球

international.v1.hitokoto.cn

HTTPS

Any

10

国外

 

请求参数:

参数


可选

说明

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,返回句子类型是诗词

文心一言 调用 python 文心一言 调用接口_每日一句

请求成功,返回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();
    }