一、接口简介
这是一个面向驾考学习类应用的免费驾考题库接口。
- 覆盖范围:C 照科目一、科目四
- 题库规模:2000+ 题
- 返回内容:题目正文、题目配图、正确答案、解题思路、解题技巧、解题配图
- 典型用法:前端拿到数据后先把正确答案隐藏,用户作答后再展开解析,非常适合做"每日一练""随机刷题""错题本"等功能
二、请求说明
项目 |
值 |
请求地址 |
|
请求方式 |
GET 或 POST 均可 |
数据格式 |
返回 JSON |
请求参数
参数名 |
字段 |
必填 |
说明 |
用户 ID |
|
是 |
用户中心的数字 ID,如 |
用户 KEY |
|
是 |
用户中心的通讯秘钥,如 |
科目选择 |
|
是 |
|
三、返回参数说明
字段 |
含义 |
|
200 成功,400 错误 |
|
消息内容(错误时可见原因) |
|
科目类型,"1" 或 "4" |
|
题目类型:1=判断题,2=单选题,3=多选题 |
|
题目正文 |
|
题目配图 URL(判断题 / 部分单选题可能无图,为 |
|
选项内容;判断题中 A=正确,B=错误,C/D 为 |
|
正确答案;判断题 |
|
解题思路(如有) |
|
解题技巧(如有) |
|
解题配图(如有) |
四、返回示例(节选)
判断题(科四)
{ "code": 200, "type": "4", "subtype": "1", "title": "右侧标志警告前方路段要注意儿童。", "pic": "https://接口盒子/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://接口盒子/resimg/jiakao/42479.jpg", "opta": "转弯前减速", "optb": "靠右侧行驶", "optc": "鸣喇叭提示", "optd": "转弯时加档", "answer": "ABC", "jtsl": "驾驶在山区上这种陡坡转弯时要匀速或者减速,安全第一……", "jtjq": null, "jttp": null }
错误返回示例:
{"code":400,"msg":"通讯秘钥错误。"}
五、PHP 调用示例
方式一:GET 请求(curl)
<?php $api = 'https://接口盒子/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://接口盒子/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://接口盒子/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://接口盒子/api/jiaotong/jiakao.php" payload = { "id": "88888888", "key": "88888888", "type": "4" } resp = requests.post(api, data=payload, timeout=10) data = resp.json() print(data)
七、开发注意事项
- 判断题特殊规则:
subtype=1时,opta="正确"、optb="错误",answer="A"表示对、"B"表示错,前端渲染时不要当成普通 ABCD 选项处理。 - 多选题答案格式:
answer可能是"ABC"这种多字母拼接,前端勾选后要按字符拆分比对。 - 图片字段可能为 null:
pic、jttp、jtsl、jtjq都可能为空,渲染前先做判空,避免前端报错。 - 科目参数别写错:科一是
1,科四是4,没有 2、3。