最小可运行示例:一句话接入一言经典语录 API

发布时间:2026/7/14 10:12:12

最小可运行示例:一句话接入一言经典语录 API 适用场景一言经典语录 API 适合以下场景个人博客 / 主页装饰每次刷新页面随机展示一句经典语录提升页面文化氛围。聊天机器人语料为机器人添加随机回复功能丰富对话内容。学习 / 演示项目作为前后端联调的小型接口 Demo验证网络请求与 JSON 解析。卡片生成 / 名片页结合图片生成服务将语录渲染到分享卡上。接口能力边界指标说明请求方法GET请求地址https://v1.apizero.cn/api/hitokoto数据来源370 条经典语录动漫/漫画/游戏/文学/影视/诗词/哲学/网络等 12 类QPS20 / s单 IP 推荐不超过此限制认证方式HeaderX-API-Key需从 API 平台获取密钥响应格式JSON对象非数组注意文档中响应示例显示为数组包裹实际单次请求返回一个 JSON 对象示例如下{ code: 0, data: { from: 滕王阁序, from_who: 王勃, hitokoto: 落霞与孤鹜齐飞秋水共长天一色。, id: 1234, length: 16, total_pool: 370, type: i, type_name: 诗词 }, msg: 成功 }查询参数详解参数名必填类型说明示例值c否string分类单字母a-l 对应 12 类不传则全类别随机i诗词min_length否number返回结果最小字符数10max_length否number返回结果最大字符数50分类代号速查a-la: 动画b: 漫画c: 游戏d: 文学e: 原创f: 来自网络g: 其他h: 影视i: 诗词j: 网易云k: 哲学l: 抖机灵鉴权方式在 HTTP 请求头中加入X-API-Key值为平台分配的密钥。若未提供密钥接口可能返回 401 或 403。密钥获取方式请参考官方文档。最小可运行示例1. cURL 命令以下命令请求诗词分类i且语录长度在 20 到 60 个汉字之间curl -sS \ -X GET \ -H X-API-Key: YOUR_API_KEY \ https://v1.apizero.cn/api/hitokoto?cimin_length20max_length60将YOUR_API_KEY替换为真实密钥后直接粘贴到终端即可测试。输出示例实际每次返回不同{ code: 0, data: { from: 江城子·乙卯正月二十日夜记梦, from_who: 苏轼, hitokoto: 十年生死两茫茫不思量自难忘。, id: 5678, length: 14, total_pool: 370, type: i, type_name: 诗词 }, msg: 成功 }2. Python 请求使用标准库urllib.request无需安装第三方包import json from urllib.request import Request, urlopen from urllib.parse import urlencode API_URL https://v1.apizero.cn/api/hitokoto API_KEY YOUR_API_KEY params { c: i, min_length: 10, max_length: 50 } url f{API_URL}?{urlencode(params)} req Request(url, headers{X-API-Key: API_KEY}) with urlopen(req) as resp: data json.loads(resp.read().decode()) print(json.dumps(data, ensure_asciiFalse, indent2))若使用requests库需安装pip install requestsimport requests url https://v1.apizero.cn/api/hitokoto headers {X-API-Key: YOUR_API_KEY} params {c: i, min_length: 10, max_length: 50} resp requests.get(url, headersheaders, paramsparams) print(resp.json())3. JavaHutool/Https使用 Apache HttpClient 或 OkHttp 均可这里给出基于 JDK 11HttpClient的最小示例import java.net.URI; import java.net.http.HttpClient; import java.net.http.HttpRequest; import java.net.http.HttpResponse; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; public class HitokotoDemo { public static void main(String[] args) throws Exception { String apiKey YOUR_API_KEY; String params cimin_length10max_length50; String url https://v1.apizero.cn/api/hitokoto? params; HttpClient client HttpClient.newHttpClient(); HttpRequest request HttpRequest.newBuilder() .uri(URI.create(url)) .header(X-API-Key, apiKey) .GET() .build(); HttpResponseString response client.send(request, HttpResponse.BodyHandlers.ofString()); System.out.println(response.body()); } }返回字段解读字段类型说明codeint状态码0 表示成功msgstring状态信息“成功”或错误描述data.hitokotostring语录正文原样data.fromstring出处作品名data.from_whostring作者可能为空data.idint语录唯一 IDdata.lengthint语录字符数汉字/标点均算一个字符data.typestring分类单字母代号data.type_namestring分类中文名称data.total_poolint语录库总条数约 370常见错误与排查400 Bad Request原因参数格式错误如c传了非法值除 a-l 外的字母。解决检查参数拼写确保c值为小写字母 a-l。401 Unauthorized原因缺少X-API-Key或密钥无效。解决确认密钥已从平台获取并正确设置在请求头中。429 Too Many Requests原因请求频率超过 20 QPS。解决添加客户端限流或退避策略比如请求间隔至少 50ms。500 Internal Server Error原因服务端临时异常。解决重试 1-2 次若持续失败则检查网络或联系 API 提供方。工程化注意事项密钥管理不要将 API Key 硬编码在代码仓库中应通过环境变量或配置文件注入并加入.gitignore。缓存策略语录数据通常不需要实时刷新可在客户端本地缓存一批结果比如 10 条按序显示减少重复请求。错误重试对 5xx 错误实现指数退避重试最多 3 次对 4xx 错误直接日志记录并停止重试。参数校验min_length和max_length应限制在合理范围内如 1-200避免无效请求。日志输出记录请求参数、响应状态码及部分字段注意脱敏密钥便于排查问题。跨域问题若在前端网页直接调用需确保后端或网关配置了 CORS 头建议通过自己的后端代理调用。参考文档一言经典语录 API 文档页原始 Markdown 文档

相关新闻