汉字多功能转换器免费额度与档次限制:如何避免调用被限流
汉字多功能转换器汉字转拼音简繁转换全角半角地址分词 # 汉字多功能转换器免费额度与档次限制:如何避免调用被限流
> 接口/接入点:汉字多功能转换器(apiCode=99) · 计费:免费(注册后默认可调用,有使用档次限制) · 适用人群:所有调用方 · 阅读时间:约 6 分钟
## 核心要点
- 本接口**注册后默认可免费调用**,但为防止滥用设有"使用档次限制";更高调用档位可用平台积分兑换。
- 文档**未公布具体档位次数**,请以官方"积分与档位详情"为准,本文不编造数字。
- 客户端侧务必要做**限流 + 指数退避重试**,把免费额度用在刀刃上。
## Why:为什么要关心限流
免费不等于无限。批量注音、地址清洗这类任务一上来就猛发请求,很容易撞上档次上限,表现为部分调用失败。与其事后排查,不如在客户端先做好限流与重试,既保护额度也提升成功率。
## What:计费与档位事实
| 项 | 说明 |
|----|------|
| 默认可用性 | 注册后默认可免费调用 |
| 限制机制 | 使用档次限制(防止滥用) |
| 升档方式 | 平台积分兑换更高调用档位 |
| 具体档位/次数 | 文档未列出,以官方"积分与档位详情"为准 |
| 服务商 | 昆明秀派科技有限公司 |
> 积分与档位详情:https://www.showapi.com/helpcenter/view#/4019/2
## How:客户端限流 + 退避重试
**Python(令牌桶 + 指数退避)**
```python
import time
import requests
def call_with_retry(point, payload, appkey="YOUR_APPKEY", max_retry=3):
url = f"https://route.showapi.com/{point}"
delay = 0.2
for i in range(max_retry):
r = requests.post(url, params={"appKey": appkey},
data=payload, timeout=10).json()
if r.get("showapi_res_code") == 0:
return r
# 疑似限流/临时失败:退避后重试
time.sleep(delay * (2 ** i))
return r # 用尽重试,返回最后一次结果供上层判断
# 简单限流:每批之间 sleep
for text in ["你好", "学校", "中国"]:
call_with_retry("99-38", {"content": text})
time.sleep(0.2)
```
**cURL(单条,手动控速)**
```bash
for w in "%E4%BD%A0%E5%A5%BD" "%E5%AD%A6%E6%A0%A1"; do
curl -X POST "https://route.showapi.com/99-38?appKey=YOUR_APPKEY" -d "content=$w"
sleep 0.2
done
```
**Node.js(fetch + 限流)**
```javascript
async function batch(words){
for (const w of words){
const r = await fetch("https://route.showapi.com/99-38?appKey=YOUR_APPKEY", {
method:"POST", headers:{"content-type":"application/x-www-form-urlencoded"},
body: new URLSearchParams({ content: w }),
}).then(x=>x.json());
if (r.showapi_res_code !== 0) console.warn("限流/失败:", r.showapi_res_error);
await new Promise(s=>setTimeout(s,200));
}
}
```
## 返回示例与解析
```json
{ "showapi_res_code": 0, "showapi_fee_num": 1, "showapi_res_body": { "data": "ni hao", "simpleData": "n h", "flag": "true" } }
```
`showapi_fee_num` 表示本次计费次数,可用于本地核对消耗是否超出预期档位。
## 进阶/边界
- 文档未给具体档位次数,**不要臆测数字**;以官方档位说明为准,必要时用积分兑更高档。
- 限流建议放在客户端(sleep / 令牌桶),不要把重试风暴打到服务端。
- 命中限流时优先退避重试,而非立即放弃;但要对"持续失败"设上限,避免死循环。
## FAQ
**Q1:免费档位每天能调多少次?**
文档未列出具体次数,以官方"积分与档位详情"为准。
**Q2:超限后会扣费吗?**
超限表现以接口返回为准;如提示额度不足,请到档位说明页用积分兑换更高档位。
**Q3:批量任务怎么不踩限流?**
客户端加 sleep/令牌桶,并在失败时用指数退避重试,单次批量规模控制在合理范围。
**Q4:showapi_fee_num 是干什么的?**
返回本次调用的计费次数,用来核对额度消耗。
## 相关能力 / 下一步阅读
- [汉字多功能转换器错误排查:showapi_res_code 与地址分词的 ret_code/msg](https://www.showapi.com/guides/hanzi-converter-errors-99)
- [汉字多功能转换器:5 分钟从注册到第一条转换结果(汉字转拼音)](https://www.showapi.com/guides/hanzi-converter-quickstart-99)
- [汉字多功能转换器返回字段全解:data / simpleData / flag 与系统级 showapi_res_code](https://www.showapi.com/guides/hanzi-converter-response-fields-99)
- **本系列共 12 篇**:查看[汉字多功能转换器指南总目录](https://www.showapi.com/guides/hanzi-converter-guides-99)