一、接口简介
-
覆盖范围:C 照科目一、科目四
-
题库规模:2000+ 题
-
返回内容:题目正文、题目配图、正确答案、解题思路、解题技巧、解题配图
-
典型用法:前端拿到数据后先把正确答案隐藏,用户作答后再展开解析,非常适合做"每日一练""随机刷题""错题本"等功能
二、请求说明
| 项目 | 值 |
|---|---|
| 请求地址 | https://cn.apihz.cn/api/jiaotong/jiakao.php |
| 请求方式 | GET 或 POST 均可 |
| 数据格式 | 返回 JSON |
请求参数
| 参数名 | 字段 | 必填 | 说明 |
|---|---|---|---|
| 用户 ID | id |
是 | 用户中心的数字 ID,如 id=10000000 |
| 用户 KEY | key |
是 | 用户中心的通讯秘钥,如 key=15he5h15ty854j5sr152hs2 |
| 科目选择 | type |
是 | 1= 科目一,4= 科目四 |
三、返回参数说明
| 字段 | 含义 |
|---|---|
code |
200 成功,400 错误 |
msg |
消息内容(错误时可见原因) |
type |
科目类型,"1" 或 "4" |
subtype |
题目类型:1=判断题,2=单选题,3=多选题 |
title |
题目正文 |
pic |
题目配图 URL(判断题 / 部分单选题可能无图,为 null) |
opta/ optb/ optc/ optd |
选项内容;判断题中 A=正确,B=错误 ,C/D 为 null |
answer |
正确答案;判断题 "A"/ "B",多选题如 "ABC" |
jtsl |
解题思路(如有) |
jtjq |
解题技巧(如有) |
jttp |
解题配图(如有) |
四、返回示例(节选)
判断题(科四)
{
"code": 200,
"type": "4",
"subtype": "1",
"title": "右侧标志警告前方路段要注意。",
"pic": "https://rescdn.apihz.cn/resimg/jiakao/40209.jpg",
"opta": "正确",
"optb": "错误",
"optc": null,
"optd": null,
"answer": "A",
"jtsl": "该标志的意思是注意,多出现在出入频繁的地方。",
"jtjq": "出现'注意'二字的判断题大多数是对的。只有6道标志题除外。",
"jttp": null
}
多选题(科四)
{
"code": 200,
"type": "4",
"subtype": "3",
"title": "驾驶汽车在山区上这种陡坡道转弯时怎样行驶?",
"pic": "https://rescdn.apihz.cn/resimg/jiakao/42479.jpg",
"opta": "转弯前减速",
"optb": "靠右侧行驶",
"optc": "鸣喇叭提示",
"optd": "转弯时加档",
"answer": "ABC",
"jtsl": "驾驶在山区上这种陡坡转弯时要匀速或者减速,安全第一......",
"jtjq": null,
"jttp": null
}
错误返回示例:
{"code":400,"msg":"通讯秘钥错误。"}
五、PHP 调用示例
方式一:GET 请求(curl)
<?php
$api = 'https://cn.apihz.cn/api/jiaotong/jiakao.php';
$id = '88888888'; // 替换成你自己的 ID
$key = '88888888'; // 替换成你自己的 KEY
$type= '1'; // 1=科一,4=科四
$url = $api . '?id=' . $id . '&key=' . $key . '&type=' . $type;
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
$response = curl_exec($ch);
curl_close($ch);
$data = json_decode($response, true);
if ($data['code'] == 200) {
echo "题目:" . $data['title'] . PHP_EOL;
echo "A. " . $data['opta'] . PHP_EOL;
echo "B. " . $data['optb'] . PHP_EOL;
if ($data['optc']) echo "C. " . $data['optc'] . PHP_EOL;
if ($data['optd']) echo "D. " . $data['optd'] . PHP_EOL;
echo "正确答案:" . $data['answer'] . PHP_EOL;
echo "解题思路:" . $data['jtsl'] . PHP_EOL;
} else {
echo "接口错误:" . $data['msg'];
}
方式二:POST 请求(curl)
<?php
$api = 'https://cn.apihz.cn/api/jiaotong/jiakao.php';
$id = '88888888';
$key = '88888888';
$type= '4';
$postData = http_build_query([
'id' => $id,
'key' => $key,
'type' => $type,
]);
$ch = curl_init($api);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
$data = json_decode($response, true);
print_r($data);
六、Python 调用示例
依赖:
requests,没有的话先pip install requests
方式一:GET 请求
import requests
api = "https://cn.apihz.cn/api/jiaotong/jiakao.php"
params = {
"id": "88888888", # 换成自己的
"key": "88888888", # 换成自己的
"type": "1" # 1=科一,4=科四
}
resp = requests.get(api, params=params, timeout=10)
data = resp.json()
if data["code"] == 200:
print("题目:", data["title"])
print("A.", data["opta"])
print("B.", data["optb"])
if data.get("optc"):
print("C.", data["optc"])
if data.get("optd"):
print("D.", data["optd"])
print("正确答案:", data["answer"])
print("解题思路:", data.get("jtsl"))
print("解题技巧:", data.get("jtjq"))
else:
print("接口错误:", data["msg"])
方式二:POST 请求
import requests
api = "https://cn.apihz.cn/api/jiaotong/jiakao.php"
payload = {
"id": "88888888",
"key": "88888888",
"type": "4"
}
resp = requests.post(api, data=payload, timeout=10)
data = resp.json()
print(data)
七、开发注意事项
-
用自己的 ID / KEY :示例里的
88888888是公共测试凭证,多人共享每分钟频次,正式项目务必去 apihz.cn 用户中心开通自己的。 -
判断题特殊规则 :
subtype=1时,opta="正确"、optb="错误",answer="A"表示对、"B"表示错,前端渲染时不要当成普通 ABCD 选项处理。 -
多选题答案格式 :
answer可能是"ABC"这种多字母拼接,前端勾选后要按字符拆分比对。 -
图片字段可能为 null :
pic、jttp、jtsl、jtjq都可能为空,渲染前先做判空,避免前端报错。 -
科目参数别写错 :科一是
1,科四是4,没有 2、3。