技术博客
周公解梦 API:5 分钟接入,从注册到查出第一个梦境解读

周公解梦 API:5 分钟接入,从注册到查出第一个梦境解读

作者: 万维易源
2026-09-02
周公解梦快速接入Python示例免费接口关键词查询
# 周公解梦 API:5 分钟接入,从注册到查出第一个梦境解读 > 接口:免费解梦详细(apiCode 1601)· 接入点:解梦详细(1601-2)· **免费** · 请求方式 POST/GET · 返回 JSON · 适用人群:新注册用户、初级开发者 · 阅读约 6 分钟 ## 核心要点 - 注册后在 AppKey 控制台拿到 AppKey,接口地址是 `https://route.showapi.com/1601-2`,把 AppKey 拼在 URL 的 `appKey` 参数上。 - 唯一**必填**参数是 `keyWords`(梦境关键词,如「飞」);`page` 选填,默认 `1`。 - 业务数据都在 `showapi_res_body` 里:`ret_code` 为 `"0"` 表示成功,`contentlist` 是结果数组,每项含 `name`(梦境名)与 `detailList`(解读文本数组)。 ## Why:这跟我有什么关系 你正在做一个娱乐小工具、内容社区,或者只是想在自家产品里加一个「解梦」彩蛋——用户输一句「我梦见被追杀」,你希望立刻返回一段文化解读。这个接口零费用、一个关键词就能查、返回结构干净,非常适合快速嵌入。 ## What:前置条件与接口速览 | 项目 | 说明 | |------|------| | 接口名称 | 免费解梦详细(周公解梦) | | 接口编码 | 1601(接入点 1601-2 解梦详细) | | 接口地址 | `https://route.showapi.com/1601-2?appKey={your_appKey}` | | 请求方式 | POST 或 GET | | 返回格式 | JSON | | 是否免费 | 是(注册后默认可免费调用,有档位限制防滥用,具体见[免费档位说明](https://www.showapi.com/free-api)) | | 必填参数 | `keyWords`(关键词) | | 选填参数 | `page`(页码,默认 1) | | 鉴权 | AppKey 放在 URL 的 `appKey` 参数 | | 接入点说明 | 内容参考《周公解梦全书》部分信息,提供解读参考(文化参考,非科学/医疗结论) | | 集成能力 | MCP 服务、OpenAPI 3.0 文档 | 前置条件:一个 ShowAPI 账号 + 一个 AppKey([AppKey 管理](https://www.showapi.com/console#/myApp))。 ## How:三步跑通 **步骤 1 — 拿 AppKey**:登录后在[我的应用](https://www.showapi.com/console#/myApp)创建应用,复制 AppKey。 **步骤 2 — 发起第一次调用**:以关键词「飞」为例。 **Python(requests)** ```python import requests APP_KEY = "YOUR_APPKEY" # 替换成你的 ShowAPI AppKey URL = "https://route.showapi.com/1601-2" resp = requests.post( URL, params={"appKey": APP_KEY}, data={"keyWords": "飞", "page": "1"}, headers={"content-type": "application/x-www-form-urlencoded"}, timeout=10, ) resp.raise_for_status() data = resp.json() if data.get("showapi_res_code") != 0: raise RuntimeError(f"系统错误: {data.get('showapi_res_error')}") body = data["showapi_res_body"] if body.get("ret_code") != "0": raise RuntimeError(f"业务失败: ret_code={body.get('ret_code')}") for item in body.get("contentlist", []): print("梦境:", item.get("name")) for line in item.get("detailList", []): print(" -", line) ``` **cURL** ```bash curl -X POST "https://route.showapi.com/1601-2?appKey=YOUR_APPKEY" \ -H "content-type: application/x-www-form-urlencoded" \ -d "keyWords=%E9%A3%9E&page=1" ``` **Node.js(fetch)** ```javascript const APP_KEY = "YOUR_APPKEY"; const url = `https://route.showapi.com/1601-2?appKey=${APP_KEY}`; const res = await fetch(url, { method: "POST", headers: { "content-type": "application/x-www-form-urlencoded" }, body: new URLSearchParams({ keyWords: "飞", page: "1" }), }); const data = await res.json(); if (data.showapi_res_code !== 0) { throw new Error("系统错误: " + data.showapi_res_error); } const body = data.showapi_res_body; if (body.ret_code !== "0") { throw new Error("业务失败: ret_code=" + body.ret_code); } for (const item of body.contentlist || []) { console.log("梦境:", item.name); (item.detailList || []).forEach((line) => console.log(" -", line)); } ``` **步骤 3 — 解析返回**:详见《[周公解梦 API 返回字段全解](https://www.showapi.com/guides/dream-response-fields-1601)》。 ## 返回示例与解析 请求 `keyWords=飞&page=1` 时,接口返回(节选): ```json { "showapi_res_code": 0, "showapi_res_error": "", "showapi_res_body": { "ret_code": "0", "contentlist": [ { "name": "疯子", "detailList": [ "疯子活在自己的世界里,不受外界环境的干扰,象征着人不会迷失自己,是一种好运。", "梦见疯子通常预示你将有好运气。" ] }, { "name": "疯子追杀我", "detailList": ["梦见疯子追杀我,要交好运。"] } ], "maxResult": 10, "allNum": 2, "allPages": 1, "currentPage": 1 } } ``` - `showapi_res_code` 是系统级状态码,`0` 表示本次请求成功。 - `showapi_res_body.ret_code` 是业务状态码,`"0"` 表示查询成功。 - `contentlist` 是对象**数组**,每个元素含 `name`(梦境名)与 `detailList`(解读文本数组)。 - `maxResult`/`allNum`/`allPages`/`currentPage` 是分页信息。 ## 进阶 / 边界 - **内容是文化参考**:接口说明明确「参考《周公解梦全书》部分信息,提供解读参考」,请勿当作科学或医疗结论向用户呈现。 - **免费但有档位限制**:为防止滥用设有使用档次限制,具体数值见[免费档位说明](https://www.showapi.com/free-api);同一关键词没必要高频重复请求,建议做短缓存(见《[免费档位与调用限制说明](https://www.showapi.com/guides/dream-free-tier-1601)》)。 - **关键词是单值**:`keyWords` 传一个梦境词即可,传整句话不会自动分词,应先用简单逻辑抽取关键词(见《[关键词怎么查才准](https://www.showapi.com/guides/dream-keywords-guide-1601)》)。 ## FAQ **Q1:返回 `showapi_res_code` 不是 0 怎么办?** 看 `showapi_res_error` 字段的文字说明,通常是签名/AppKey/参数问题,按提示修正后重试。 **Q2:`ret_code` 不是 "0" 是什么意思?** `ret_code` 只有「0 成功,其余为失败」的约定,文档未枚举具体非零值;非 0 时按失败处理,结合 `showapi_res_error` 排查。 **Q3:免费接口要钱吗?** 注册后默认可免费调用,但有档位限制防滥用;具体档位见[免费档位说明](https://www.showapi.com/free-api)。 **Q4:GET 和 POST 都能用吗?** 都能用。示例用 POST 表单,GET 时把 `keyWords`、`page` 拼到 query 即可(AppKey 始终在 query)。 **Q5:一次能返回多少条?** 由 `maxResult` 控制(示例中为 10),总条数看 `allNum`,总页数看 `allPages`,翻页见《[分页与结果集怎么用](https://www.showapi.com/guides/dream-pagination-1601)》。 ## 相关能力 / 下一步阅读 - [周公解梦 API 返回字段全解:ret_code、contentlist、分页字段一文读懂](https://www.showapi.com/guides/dream-response-fields-1601) - [周公解梦 API:关键词怎么查才准?关键词选取与结果解读实战](https://www.showapi.com/guides/dream-keywords-guide-1601) - [周公解梦 API 免费档位与调用限制说明:如何避免触发限流?](https://www.showapi.com/guides/dream-free-tier-1601) - **本系列共 8 篇**:查看[周公解梦 API 指南总目录](https://www.showapi.com/guides/dream-guides-1601)