如果你正在找一个「随叫随到、库存巨大、还不要钱」的笑话接口,接口盒子的随机笑话API基本就是为你准备的。随机返回一条中文小笑话,20 万库存,请求方式宽松到 GET、POST 都行,返回又是标准 JSON,不管是塞进网站侧边栏、做聊天机器人彩蛋,还是写个命令行摸鱼脚本,都能直接上手。


一、接口基本信息

项目

说明

接口名称

随机笑话[20万]

请求地址

https://cn.apihz.cn/api/zici/xiaohua.php

请求方式

GET 或 POST

鉴权方式

用户ID(id)+ 用户KEY(key)

返回格式

JSON

费用

接口本身免费,每日调用无上限

频率限制

公共ID/KEY共享分钟级限频,私有ID/KEY独享


二、请求参数

两个参数都是必填,缺一个都会直接 400。

参数名

含义

示例

id

用户中心的数字ID

10000000

key

用户中心通讯秘钥

15he5h15ty854j5sr152hs2


三、返回参数

接口用 code当业务状态码,200成功、400出错,这点一定要记住——笑话正文不在 msg里,而在 content字段

参数名

说明

code

200成功,400错误

msg

信息提示,成功时也可能带提示

content

笑话正文内容,只有 code=200才有意义

成功返回示例

{
  "code": 200,
  "content": "两只母鸡在聊天,看到一只公鸡无精打彩的走来,母鸡问:「咋地了?没精神?」公鸡说:「做点生意!」母鸡问:「做啥生意累这德性啊?」公鸡不好意思的说:「嗯卖点鸡精。」"
}

失败返回示例

{
  "code": 400,
  "msg": "通讯秘钥错误。"
}

四、GET 请求示例

最简单的玩法,浏览器地址栏直接敲:

https://接口盒子/api/zici/xiaohua.php?id=88888888&key=88888888


五、PHP 调用示例

方式一:GET 请求(file_get_contents)

适合环境没开 cURL 的轻量场景,几行代码搞定。

<?php
$userId = "你的ID";
$apiKey = "你的KEY";
// 2. 拼接 GET URL
$apiUrl = "https://接口盒子/api/zici/xiaohua.php?id={$userId}&key={$apiKey}";
// 3. 发送请求并解析 JSON
$response = file_get_contents($apiUrl);
$data = json_decode($response, true);
// 4. 根据 code 判断结果
if ($data['code'] == 200) {
    echo "😄 随机笑话:" . $data['content'];
} else {
    echo "❌ 请求失败:" . $data['msg'];
}
?>

方式二:POST 请求(cURL,推荐)

生产环境更推荐 cURL,能设超时、能抓错误,稳得多。

<?php
$apiUrl = "https://接口盒子/api/zici/xiaohua.php";
$userId = "你的ID";
$apiKey = "你的KEY";
// 2. 初始化 cURL
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $apiUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, [
    'id'  => $userId,
    'key' => $apiKey
]);
// 3. 执行请求
$response = curl_exec($ch);
// 4. 错误处理
if ($response === false) {
    echo "请求失败:" . curl_error($ch);
    curl_close($ch);
    exit;
}
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
// 5. 解析并返回笑话
$data = json_decode($response, true);
if ($httpCode == 200 && $data['code'] == 200) {
    echo "😄 随机笑话:" . $data['content'];
} else {
    echo "❌ 错误码:" . $data['code'] . ",信息:" . $data['msg'];
}
?>

六、Python 调用示例

方式一:GET 请求

先装依赖:pip install requests

import requests
# 1. 替换为自己的 ID 和 KEY
user_id = "你的ID"
api_key = "你的KEY"
# 2. 发送 GET 请求
params = {
    "id": user_id,
    "key": api_key
}
try:
    response = requests.get(
        "https://接口盒子/api/zici/xiaohua.php",
        params=params,
        timeout=10
    )
    # 3. HTTP 层和业务层双层判断
    if response.status_code == 200:
        data = response.json()
        if data["code"] == 200:
            print("😄 随机笑话:" + data["content"])
        else:
            print("❌ 业务错误:" + data["msg"])
    else:
        print("❌ HTTP错误码:" + str(response.status_code))
except requests.exceptions.RequestException as e:
    print("❌ 网络异常:" + str(e))

方式二:POST 请求(推荐)

import requests
from requests.exceptions import RequestException
# 1. 配置凭证
api_url = "https://接口盒子/api/zici/xiaohua.php"
user_id = "你的ID"
api_key = "你的KEY"
# 2. 表单数据
data = {
    "id": user_id,
    "key": api_key
}
try:
    # 3. 发送 POST 请求,记得加 timeout
    response = requests.post(api_url, data=data, timeout=10)
    response.raise_for_status()  # 非 2xx 直接抛异常
    result = response.json()
    if result["code"] == 200:
        print("😄 随机笑话:")
        print(result["content"])
    else:
        print("❌ 接口返回错误:" + result["msg"])
except RequestException as e:
    print("❌ 请求异常:" + str(e))

七、常见错误排查

现象

原因

解决办法

code:400, msg:通讯秘钥错误

ID 或 KEY 填错

去用户中心核对

公共KEY偶尔调不通

分钟级限频被打满

换自己的私有ID/KEY

超时无响应

网络或SSL问题

timeout,检查服务器出站HTTPS

拿到数据却没有笑话

误读字段

正文在 content,不在 msg


八、使用注意事项

  • KEY 别硬编码在前端:PHP/Python 服务端调用没问题,但如果是网页 AJAX 直调,KEY 会直接暴露,建议走自己的后端中转。
  • content 可能含换行:前端渲染时记得把 \n换成 <br>,不然排版会乱。

九、能用在哪

这个接口虽然简单,但落地场景不少:

  • 网站侧边栏/ footer 随机显示一句笑话,缓解用户等待焦虑
  • 微信/QQ 机器人收到「讲笑话」指令时调用
  • 命令行工具 joke命令,上班摸鱼专用
  • 登录页、404 页、加载页的趣味文案
  • 每日推送脚本,定时把笑话发到群里的「快乐担当」
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐