在学术规范日益严格的背景下,自动化论文查重系统已成为教育机构、科研平台的必备工具。PaperFree 推出的论文查重 API 接口,通过标准化的接口设计与安全的认证机制,为开发者提供了便捷的集成方案,可快速实现论文检测功能的嵌入。本文基于最新接口规范(v1.3),详细解读其功能特性、参数规范与实战调用方法。
可提供paperfree、知网查重API接口(均支持官网真伪验证),商务绿泡泡:邀3捌 零849 零99武
PaperFree 论文查重 API 采用模块化设计,包含提交查重与查询任务状态两大核心接口,覆盖从论文上传到结果获取的全流程。其架构特点如下:
apiKey与apiSecret双重认证,确保接口调用的合法性与数据传输安全性。两大接口基础信息对比:
接口功能 | 请求地址(示例) | 请求方式 | Content-Type | 核心作用 |
|---|---|---|---|---|
提交查重 | (文档未明确具体地址,需结合实际部署填写) | POST | multipart/form-data | 上传论文文件,生成检测任务 ID |
查询任务状态 | (文档未明确具体地址,需结合实际部署填写) | POST | application/x-www-form-urlencoded | 查询检测进度与最终结果 |
提交查重接口是启动论文检测的入口,需按规范上传论文文件及相关元数据,接口将返回唯一task_id,作为后续查询的标识。
请求参数采用multipart/form-data格式(支持文件上传),包含必填项与约束条件,具体如下:
参数名 | 类型 | 是否必需 | 说明 | 约束条件 |
|---|---|---|---|---|
doc | File | 是 | 待检测的论文文件 | 仅支持 Doc 或 docx 格式 |
title | string | 是 | 论文标题 | 不可为空,最大长度 30 字 |
author | string | 是 | 论文作者 | 不可为空,最大长度 10 字 |
checkType | string | 是 | 检测类型标识 | 固定值为 “pf”(表示 PaperFree 查重) |
apiKey | string | 是 | 接口调用凭证 | 由 PaperFree 平台分配 |
apiSecret | string | 是 | 接口调用密钥 | 与 apiKey 配套使用,需妥善保管 |
示例参数说明:
doc:上传本地文件test_paper.docxtitle:“基于机器学习的图像识别研究”(20 字,符合长度要求)author:“张明”(2 字,符合长度要求)接口返回为 JSON 格式,包含状态码、提示信息及任务 ID:
字段名 | 类型 | 说明 | 示例值 |
|---|---|---|---|
error_no | int | 状态码:0 表示成功,-1 表示失败 | 0 |
message | string | 提示信息:失败时返回具体原因 | “”(成功时为空) |
data | string | 任务 ID:用于后续查询检测状态 | “task_123456789” |
成功响应示例:
json
{
"error_no": 0,
"message": "",
"data": "task_123456789"
}失败响应示例:
json
{
"error_no": -1,
"message": "文件格式错误,请上传Doc或docx文件",
"data": ""
}提交查重后,需通过本接口查询任务进度,获取最终检测结果(如重复率、报告文件等)。支持批量查询(最多 10 个任务 ID),提高集成效率。
请求参数采用application/x-www-form-urlencoded格式,具体如下:
参数名 | 类型 | 是否必需 | 说明 | 约束条件 |
|---|---|---|---|---|
task_id_list | string | 是 | 待查询的任务 ID 列表 | 以英文逗号分隔,最多包含 10 个 ID |
apiKey | string | 是 | 接口调用凭证 | 与提交查重接口使用的apiKey一致 |
apiSecret | string | 是 | 接口调用密钥 | 与提交查重接口使用的apiSecret一致 |
示例参数说明:
task_id_list:“task_123456789,task_987654321”(包含 2 个任务 ID,符合数量限制)返回结果为 JSON 格式,包含整体状态与每个任务的详细信息:
字段名 | 类型 | 说明 | 示例值 |
|---|---|---|---|
error_no | int | 整体状态码:0 表示成功,-1 表示失败 | 0 |
message | string | 整体提示信息:失败时返回原因 | “”(成功时为空) |
data | list | 任务详情列表:每个元素对应一个任务 ID | 包含以下子字段 |
├─ task_id | string | 任务 ID | “task_123456789” |
├─ check_status | int | 查重状态码 | 3(表示检测完成,状态码含义见下表) |
├─ similar | string | 重复率结果 | “18.5%”(仅当check_status=3时非空) |
├─ check_result | string | 查重报告 ZIP 文件地址 | “http://xxx/report/123.zip”(仅完成时返回) |
├─ check_type | string | 检测类型 | “pf”(与提交时的checkType一致) |
└─ word_count | int | 论文字数 | 8500(仅完成时返回) |
状态码含义说明:
check_status | 含义 | 处理建议 |
|---|---|---|
0 | 待检测 | 继续查询(建议间隔 5-10 秒) |
1 | 检测中 | 继续查询(建议间隔 5-10 秒) |
2 | 生成报告中 | 继续查询(建议间隔 3-5 秒) |
3 | 检测完成 | 获取similar与check_result |
5 | 报告已删除 | 重新提交检测 |
-1 | 检测失败 | 检查文件格式后重试 |
-2 | 生成报告失败 | 重新提交检测 |
成功响应示例(单个任务):
{
"error_no": 0,
"message": "",
"data": [
{
"task_id": "task_123456789",
"check_status": 3,
"similar": "18.5%",
"check_result": "http://xxx/report/123.zip",
"check_type": "pf",
"word_count": 8500
}
]
}以下基于 Python 的requests库,演示从提交查重到获取结果的完整流程,帮助开发者快速上手。
pip install requestsapiKey与apiSecret(需向 PaperFree 申请)test_paper.docx(Doc 或 docx 格式)import requests
import time
# 配置信息(替换为实际值)
API_KEY = "your_api_key"
API_SECRET = "your_api_secret"
SUBMIT_URL = "http://example.com/submit_check" # 替换为实际提交地址
QUERY_URL = "http://example.com/query_status" # 替换为实际查询地址
def submit_paper(file_path, title, author):
"""提交论文查重任务"""
# 构造表单数据
files = {"doc": open(file_path, "rb")}
data = {
"title": title,
"author": author,
"checkType": "pf",
"apiKey": API_KEY,
"apiSecret": API_SECRET
}
# 发送请求
response = requests.post(SUBMIT_URL, files=files, data=data)
result = response.json()
if result["error_no"] == 0:
return result["data"] # 返回任务ID
else:
raise Exception(f"提交失败:{result['message']}")
def query_status(task_ids):
"""查询任务状态"""
data = {
"task_id_list": task_ids,
"apiKey": API_KEY,
"apiSecret": API_SECRET
}
response = requests.post(QUERY_URL, data=data)
result = response.json()
if result["error_no"] == 0:
return result["data"]
else:
raise Exception(f"查询失败:{result['message']}")
if __name__ == "__main__":
# 1. 提交查重任务
task_id = submit_paper(
file_path="test_paper.docx",
title="基于机器学习的图像识别研究",
author="张明"
)
print(f"提交成功,任务ID:{task_id}")
# 2. 轮询查询结果(间隔5秒)
while True:
status_list = query_status(task_id)
task_status = status_list[0]
print(f"当前状态:{task_status['check_status']}({get_status_desc(task_status['check_status'])})")
if task_status["check_status"] == 3:
# 检测完成,输出结果
print(f"重复率:{task_status['similar']}")
print(f"报告下载地址:{task_status['check_result']}")
break
elif task_status["check_status"] in [-1, -2, 5]:
# 任务失败或已删除
print(f"任务异常:{get_status_desc(task_status['check_status'])}")
break
time.sleep(5) # 间隔5秒查询一次
def get_status_desc(status_code):
"""状态码描述映射"""
desc_map = {
0: "待检测",
1: "检测中",
2: "生成报告中",
3: "检测完成",
5: "报告已删除",
-1: "检测失败",
-2: "生成报告失败"
}
return desc_map.get(status_code, "未知状态")参数约束校验
title(≤30 字)、author(≤10 字)的长度限制,避免因参数不合法导致提交失败。doc文件需严格限制为 Doc 或 docx 格式,建议前端添加格式校验逻辑。安全机制
apiKey与apiSecret是接口调用的核心凭证,需妥善保管(如存储在环境变量或加密配置文件中),避免硬编码在代码中。批量查询优化
task_id_list按 10 个一组拆分,减少请求次数,提高效率。错误处理
error_no=-1情况,通过message字段定位问题(如 “文件过大”“apiKey 无效” 等)。check_status为 - 1(检测失败)或 - 2(生成报告失败)的任务,建议自动重试(最多 3 次),仍失败则提示用户手动处理。报告存储
check_result获取的 ZIP 报告地址具有时效性,建议下载后存储在本地服务器,避免链接过期无法访问。PaperFree论文查重 API 通过简洁的接口设计与完善的功能覆盖,为开发者提供了低门槛的集成方案。无论是教育机构的批量检测系统,还是科研平台的原创性校验模块,均可通过该 API 快速实现核心功能。在集成过程中,需重点关注参数校验、安全认证与异步处理逻辑,确保系统稳定高效运行。通过规范化调用与优化策略,可充分发挥 API 的效能,为学术诚信建设提供技术支撑,需要API接口的伙伴可咨询官网在线客服或留言。
商务绿泡泡:邀3捌 零849 零99武
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。