import{_ as o,c as p,a as d,b as t,d as n,e as a,w as e,r,o as i}from"./app-Dgsdh8A6.js";const c={};function D(u,s){const l=r("RouteLink");return i(),p("div",null,[s[48]||(s[48]=d('

操作

提交答题

提交基础题

https://api.bilibili.com/x/answer/v4/base/check

请求方式:POST

认证方式:APP或Cookie(SESSDATA)

正文参数( application/x-www-form-urlencoded ):

',7)),t("table",null,[s[15]||(s[15]=t("thead",null,[t("tr",null,[t("th",null,"参数名"),t("th",null,"类型"),t("th",null,"内容"),t("th",null,"必要性"),t("th",null,"备注")])],-1)),t("tbody",null,[t("tr",null,[s[3]||(s[3]=t("td",null,"question_id",-1)),s[4]||(s[4]=t("td",null,"num",-1)),s[5]||(s[5]=t("td",null,"题目id",-1)),s[6]||(s[6]=t("td",null,"必要",-1)),t("td",null,[s[1]||(s[1]=n("从")),a(l,{to:"/docs/newbie_exam/fetch.html#%E6%8B%89%E5%8F%96%E5%9F%BA%E7%A1%80%E9%A2%98"},{default:e(()=>s[0]||(s[0]=[n("拉取基础题api")])),_:1,__:[0]}),s[2]||(s[2]=n("获得"))])]),t("tr",null,[s[10]||(s[10]=t("td",null,"ans_hash",-1)),s[11]||(s[11]=t("td",null,"str",-1)),s[12]||(s[12]=t("td",null,"选项hash",-1)),s[13]||(s[13]=t("td",null,"必要",-1)),t("td",null,[s[8]||(s[8]=n("从")),a(l,{to:"/docs/newbie_exam/fetch.html#%E6%8B%89%E5%8F%96%E5%9F%BA%E7%A1%80%E9%A2%98"},{default:e(()=>s[7]||(s[7]=[n("拉取基础题api")])),_:1,__:[7]}),s[9]||(s[9]=n("获得"))])]),s[14]||(s[14]=t("tr",null,[t("td",null,"csrf"),t("td",null,"str"),t("td",null,"CSRF Token(位于cookie)"),t("td",null,"Cookie方式必要"),t("td")],-1))])]),s[49]||(s[49]=d(`

json回复:

根对象:

字段类型内容备注
codenum返回值0:成功
-101:账号未登录
-400:请求错误
41014:答题过快或错误太多
41012:用户答题提交题目id不合法
41020:用户基础题已通过
41023:用户答题记录不存在
messagestr错误信息默认为0
ttlnum1
dataobj信息本体

data对象:

字段类型内容备注
passedbool选项是否正确true:选项正确
false:选项错误

示例:

提交题目id为104的题,选项hash为cb4c8cc9424fc771f7c1598e74de498f

curl 'https://api.bilibili.com/x/answer/v4/base/check' \\
--data-urlencode 'question_id=104' \\
--data-urlencode 'ans_hash=cb4c8cc9424fc771f7c1598e74de498f' \\
--data-urlencode 'csrf=xxxx' \\
-b 'SESSDATA=xxxx'
查看响应示例:
{
    "code": 0,
    "message": "0",
    "ttl": 1,
    "data": {
        "passed": true
    }
}

提交附加题

https://api.bilibili.com/x/answer/v4/base/check

请求方式:POST

认证方式:APP或Cookie(SESSDATA)

正文参数( application/x-www-form-urlencoded ):

`,14)),t("table",null,[s[31]||(s[31]=t("thead",null,[t("tr",null,[t("th",null,"参数名"),t("th",null,"类型"),t("th",null,"内容"),t("th",null,"必要性"),t("th",null,"备注")])],-1)),t("tbody",null,[t("tr",null,[s[19]||(s[19]=t("td",null,"question_id",-1)),s[20]||(s[20]=t("td",null,"num",-1)),s[21]||(s[21]=t("td",null,"题目id",-1)),s[22]||(s[22]=t("td",null,"必要",-1)),t("td",null,[s[17]||(s[17]=n("从")),a(l,{to:"/docs/newbie_exam/fetch.html#%E6%8B%89%E5%8F%96%E5%9F%BA%E7%A1%80%E9%A2%98"},{default:e(()=>s[16]||(s[16]=[n("拉取基础题api")])),_:1,__:[16]}),s[18]||(s[18]=n("获得"))])]),t("tr",null,[s[26]||(s[26]=t("td",null,"ans_hash",-1)),s[27]||(s[27]=t("td",null,"str",-1)),s[28]||(s[28]=t("td",null,"选项hash",-1)),s[29]||(s[29]=t("td",null,"必要",-1)),t("td",null,[s[24]||(s[24]=n("从")),a(l,{to:"/docs/newbie_exam/fetch.html#%E6%8B%89%E5%8F%96%E5%9F%BA%E7%A1%80%E9%A2%98"},{default:e(()=>s[23]||(s[23]=[n("拉取基础题api")])),_:1,__:[23]}),s[25]||(s[25]=n("获得"))])]),s[30]||(s[30]=t("tr",null,[t("td",null,"csrf"),t("td",null,"str"),t("td",null,"CSRF Token(位于cookie)"),t("td",null,"Cookie方式必要"),t("td")],-1))])]),s[50]||(s[50]=d(`

json回复:

根对象:

字段类型内容备注
codenum返回值0:成功
-101:账号未登录
-400:请求错误
41014:答题过快或错误太多
41012:用户答题提交题目id不合法
41023:用户答题记录不存在
messagestr错误信息默认为0
ttlnum1
dataobj信息本体

data对象:

字段类型内容备注
passedbool选项是否正确true:选项正确
false:选项错误

示例:

提交题目id为104的题,选项hash为cb4c8cc9424fc771f7c1598e74de498f

curl 'https://api.bilibili.com/x/answer/v4/base/check' \\
--data-urlencode 'question_id=104' \\
--data-urlencode 'ans_hash=cb4c8cc9424fc771f7c1598e74de498f' \\
--data-urlencode 'csrf=xxxx' \\
-b 'SESSDATA=xxxx'
查看响应示例:
{
    "code": 0,
    "message": "0",
    "ttl": 1,
    "data": {
        "passed": true
    }
}

提交自选题

https://api.bilibili.com/x/answer/v4/pro/check

请求方式:POST

认证方式:APP或Cookie(SESSDATA)

正文参数( application/x-www-form-urlencoded ):

`,14)),t("table",null,[s[47]||(s[47]=t("thead",null,[t("tr",null,[t("th",null,"参数名"),t("th",null,"类型"),t("th",null,"内容"),t("th",null,"必要性"),t("th",null,"备注")])],-1)),t("tbody",null,[t("tr",null,[s[35]||(s[35]=t("td",null,"question_id",-1)),s[36]||(s[36]=t("td",null,"num",-1)),s[37]||(s[37]=t("td",null,"题目id",-1)),s[38]||(s[38]=t("td",null,"必要",-1)),t("td",null,[s[33]||(s[33]=n("从")),a(l,{to:"/docs/newbie_exam/fetch.html#%E6%8B%89%E5%8F%96%E5%9F%BA%E7%A1%80%E9%A2%98"},{default:e(()=>s[32]||(s[32]=[n("拉取基础题api")])),_:1,__:[32]}),s[34]||(s[34]=n("获得"))])]),t("tr",null,[s[42]||(s[42]=t("td",null,"ans_hash",-1)),s[43]||(s[43]=t("td",null,"str",-1)),s[44]||(s[44]=t("td",null,"选项hash",-1)),s[45]||(s[45]=t("td",null,"必要",-1)),t("td",null,[s[40]||(s[40]=n("从")),a(l,{to:"/docs/newbie_exam/fetch.html#%E6%8B%89%E5%8F%96%E5%9F%BA%E7%A1%80%E9%A2%98"},{default:e(()=>s[39]||(s[39]=[n("拉取基础题api")])),_:1,__:[39]}),s[41]||(s[41]=n("获得"))])]),s[46]||(s[46]=t("tr",null,[t("td",null,"csrf"),t("td",null,"str"),t("td",null,"CSRF Token(位于cookie)"),t("td",null,"Cookie方式必要"),t("td")],-1))])]),s[51]||(s[51]=d(`

json回复:

根对象:

字段类型内容备注
codenum返回值0:成功
-101:账号未登录
-400:请求错误
41014:答题过快或错误太多
41012:用户答题提交题目id不合法
41023:用户答题记录不存在
41026:获取用户DB题目信息异常
messagestr错误信息默认为0
ttlnum1
dataobj信息本体

data对象:

字段类型内容备注
passedbooltrue恒为true

示例:

提交题目id为2935的题,选项hash为ffd55cbe0624f466bee2ea3eb576a4d0

curl -G 'https://api.bilibili.com/x/answer/v4/pro/check' \\
--data-urlencode 'question_id=2935' \\
--data-urlencode 'ans_hash=ffd55cbe0624f466bee2ea3eb576a4d0' \\
--data-urlencode 'csrf=xxxx' \\
-b 'SESSDATA=xxxx'
查看响应示例:
{
    "code": 0,
    "message": "0",
    "ttl": 1,
    "data": {
        "passed": true
    }
}

获取验证码

https://api.bilibili.com/x/answer/v4/captcha

请求方式:GET

认证方式:APP或Cookie(SESSDATA)

json回复:

根对象:

字段类型内容备注
codenum返回值0:成功
-101:账号未登录
-400:请求错误
41010:用户答题非法访问
41014:答题过快或错误太多
41020:用户基础题已通过
41021:用户基础题未通过
messagestr错误信息默认为0
ttlnum1
dataobj信息本体

data对象:

字段类型内容备注
typestr验证码类型?geetest:极验
gtstr极验id
challengestr极验key
tokenstr(?)
urlstr(?)

示例:

curl 'https://api.bilibili.com/x/answer/v4/captcha' \\
-b 'SESSDATA=xxxx'
查看响应示例:
{
    "code": 0,
    "message": "0",
    "ttl": 1,
    "data": {
        "type": "geetest",
        "gt": "abc55d1fb914cb110cfb4c232a4b4c35",
        "challenge": "90a6e03e626e13ee186ddae0107c3ae2",
        "token": "",
        "url": ""
    }
}

提交验证码

https://api.bilibili.com/x/answer/v4/captcha/check

请求方式:POST

认证方式:APP或Cookie(SESSDATA)

注:

旧版edition=0同时提交自选题分类以及验证码

新版edition=2仅仅提交验证码

正文参数( application/x-www-form-urlencoded ):

参数名类型内容必要性备注
typesnums自选题分类(旧版)非必要新版不需要此字段
typestr验证码类型非必要
bilibili_tokenstr非必要
bilibili_codestr非必要
geetest_challengestr极验key非必要
geetest_seccodestr极验结果+|jordan非必要
geetest_validatestr极验结果非必要
csrfstrCSRF Token(位于cookie)Cookie方式必要

json回复:

根对象:

字段类型内容备注
codenum返回值0:成功
-101:账号未登录
-105:验证码错误
-400:请求错误
41010:用户答题非法访问
41014:答题过快或错误太多
41021:用户基础题未通过
41031:自选题未通过
messagestr错误信息默认为0
ttlnum1

示例:

curl 'https://api.bilibili.com/x/answer/v4/captcha/check' \\
--data-urlencode 'types=' \\
--data-urlencode 'type=geetest' \\
--data-urlencode 'bilibili_token=' \\
--data-urlencode 'bilibili_code=' \\
--data-urlencode 'geetest_challenge=3f809a7a9c51edca751fd26c032c182d' \\
--data-urlencode 'geetest_seccode=513ec576a275a3eb250829202d4dce46|jordan' \\
--data-urlencode 'geetest_validate=513ec576a275a3eb250829202d4dce46' \\
--data-urlencode 'csrf=xxx' \\
-b 'SESSDATA=xxxx'
查看响应示例:
{
    "code": 0,
    "message": "0",
    "ttl": 1
}

提交自选题分类

https://api.bilibili.com/x/answer/v4/pro/type/check

请求方式:POST

认证方式:APP或Cookie(SESSDATA)

正文参数( application/x-www-form-urlencoded ):

参数名类型内容必要性备注
typesnums自选题分类(新版)必要
csrfstrCSRF Token(位于cookie)Cookie方式必要

json回复:

根对象:

字段类型内容备注
codenum返回值0:成功
-101:账号未登录
-400:请求错误
41010:用户答题非法访问
41014:答题过快或错误太多
41021:用户基础题未通过
41031:自选题未通过
41052:用户题目类型不合法
41055:基础附加题未通过
messagestr错误信息默认为0
ttlnum1

示例:

选择游戏 影视 科教/知识 动画/动漫分类

curl 'https://api.bilibili.com/x/answer/v4/pro/type/check' \\
--data-urlencode 'types=1,2,3,4' \\
--data-urlencode 'csrf=xxx' \\
-b 'SESSDATA=xxxx'
查看响应示例:
{
    "code": 0,
    "message": "0",
    "ttl": 1
}

提前交卷

https://api.bilibili.com/x/answer/v4/submit

请求方式:POST

认证方式:APP或Cookie(SESSDATA)

当当前得分>=60时,可请求本接口提前完成答题

正文参数( application/x-www-form-urlencoded ):

参数名类型内容必要性备注
csrfstrCSRF Token(位于cookie)Cookie方式必要

json回复:

根对象:

字段类型内容备注
codenum返回值0:成功
-101:账号未登录
-400:请求错误
41014:答题过快或错误太多
41023:用户答题记录不存在
41031:自选题未通过
messagestr错误信息默认为0
ttlnum1
dataobj信息本体

data对象:

字段类型内容备注
hidnum答题会话id
midnum答题用户mid
scorenum得分
statusnum0
numbernum0
resultstrsucceed
stagestrresult
versionstr版本目前为v4
start_timenum本次答题开始时间时间戳
first_answernum0
progressstr
textstr
urlstr
in_reg_auditbool
editionnum答题版本0:旧版(40+10+50)
2:新版(40+30+30)
rewardsnull
captchanum1

示例:

curl 'https://api.bilibili.com/x/answer/v4/submit' \\
--data-urlencode 'csrf=xxx' \\
-b 'SESSDATA=xxxx'
查看响应示例:
{
    "code": 0,
    "message": "0",
    "ttl": 1,
    "data": {
        "hid": 1623207905520705,
        "mid": 293793435,
        "score": 63,
        "status": 3,
        "number": 0,
        "result": "succeed",
        "stage": "result",
        "version": "v4",
        "start_time": 1636889218,
        "first_answer": 0,
        "progress": "",
        "text": "",
        "url": "",
        "in_reg_audit": false,
        "edition": 0,
        "rewards": null,
        "captcha": 1
    }
}
`,64))])}const b=o(c,[["render",D]]),m=JSON.parse('{"path":"/docs/newbie_exam/action.html","title":"操作","lang":"zh-CN","frontmatter":{},"git":{"updatedTime":1677124138000,"contributors":[{"name":"SocialSisterYi","username":"SocialSisterYi","email":"1440239038@qq.com","commits":2,"url":"https://github.com/SocialSisterYi"}],"changelog":[{"hash":"f6760f4be38d5b592d396b211e48c666286524de","time":1677124138000,"email":"1440239038@qq.com","author":"SocialSisterYi","message":"🔨remove header index"},{"hash":"7d89ece2ac46425810647c4ac92acf5f3721cb68","time":1676998806000,"email":"1440239038@qq.com","author":"SocialSisterYi","message":"🚀调整项目结构"}]},"filePathRelative":"docs/newbie_exam/action.md"}');export{b as comp,m as data};