易盾对接示例支持直接在线查看、复制和下载源码,无需再下载压缩包。
对接示例
按语言环境展开查看代码,支持直接复制和下载源码。
PHP
PHP
该语言注意事项
跟随当前语言展示- ============================================================== 易盾识别 对接示例 — PHP版 使用说明 ============================================================== 【一、环境准备】 1. 安装 PHP - Windows用户推荐下载集成环境(任选其一): * XAMPP:https://www.apachefriends.org/download.html * PHPStudy(小皮面板):https://www.xp.cn/ * 独立PHP:https://windows.php.net/download/ - 建议版本:PHP 7.0 或以上(推荐 PHP 7.4+) - 如果使用独立PHP,需要将PHP安装目录添加到系统环境变量Path中 - 安装完成后,打开命令行(cmd 或 PowerShell),输入以下命令验证: php -v 如果显示PHP版本号则安装成功 2. 确认 curl 扩展已启用 - 本Demo依赖PHP的curl扩展来发送HTTP请求 - 执行以下命令检查curl是否启用: php -m | findstr curl 如果显示 "curl" 则已启用 - 如果未启用,需要编辑 php.ini 文件: * 找到 php.ini 文件(执行 php --ini 可以查看路径) * 找到这一行:;extension=curl * 去掉前面的分号,改为:extension=curl * 保存后重启PHP或Apache服务 - 使用XAMPP或PHPStudy等集成环境的用户,curl通常已默认启用 -------------------------------------------------------------- 【二、参数配置】 本Demo包含两个独立脚本: - query_points.php — 查询账户剩余点数 - recognize_yidun.php — 提交易盾验证码识别 请根据需要打开对应的脚本文件,找到顶部的"配置区域",修改以下参数: 1. $APPKEY(必填) - 你的用户密钥,登录平台后在个人中心获取 - 示例:$APPKEY = "abc123def456"; 2. $YIDUN_ID(必填) - 易盾验证码的 id 参数值 - 需要从目标网站通过浏览器开发者工具(F12)抓包获取 - 在网络请求中搜索与易盾相关的请求,找到 id 参数 - 示例:$YIDUN_ID = "84e18cc9ea6a49c7845847d7518b8ddf"; 3. $YIDUN_REFERER(必填) - 易盾验证码请求中的 referer 值 - 同样需要从浏览器开发者工具(F12)抓包获取 - 注意:这个值不一定是你当前访问的页面URL,而是验证码请求头中的referer 4. $ITEM_ID(一般不需要改) - 易盾类型固定填写 500 - 特殊类型请联系客服确认 5. $PROXY(可选) - 如果你需要通过代理IP访问,填写代理地址 - 支持的格式: * http://IP:端口 (普通HTTP代理,若需白名单支持请联系客服) * http://账号:密码@proxy.com:8080 (带认证的HTTP代理) * socks5://127.0.0.1:9888 (SOCKS5代理) - 不需要代理则留空:$PROXY = ""; 6. $DEVKEY(可选) - 开发者密钥,如果你有的话填写,没有则留空 -------------------------------------------------------------- 【三、运行方式】 命令行方式(推荐): 1. 打开命令行(cmd 或 PowerShell) 2. 切换到脚本所在目录: cd 易盾\php 查询点数: 3. 执行:php query_points.php - 仅查询账户剩余点数,确认APPKEY是否正确 易盾识别: 4. 执行:php recognize_yidun.php - 提交易盾验证码识别任务,等待服务器返回结果 5. 识别结果会在控制台中显示 集成到Web项目: - 你可以将脚本中的逻辑复制到你的项目中使用 - 在Web环境中调用时,将 echo 替换为日志记录或API返回 -------------------------------------------------------------- 【四、常见问题】 Q1:运行时提示 "php 不是内部或外部命令" A1:PHP未安装或未添加到系统环境变量,请按"环境准备"步骤操作 Q2:运行时提示 "Call to undefined function curl_init()" A2:curl扩展未启用,请按"环境准备"中的步骤启用curl扩展 Q3:运行时提示 "请先在脚本顶部的配置区域填写你的 APPKEY" A3:你还没有修改 $APPKEY,请用你自己的密钥替换 "你的appkey" Q4:查询点数成功但识别失败 A4:请检查 $YIDUN_ID 和 $YIDUN_REFERER 是否正确,这两个值需要实时抓包获取 Q5:返回的 validate 无法通过目标网站验证 A5:尝试对返回的 validate 值进行 urlencode() 编码后再使用 Q6:识别耗时较长(超过10秒) A6:这是正常现象,易盾验证码识别需要服务器端处理,耐心等待即可 Q7:提示网络请求出错或连接超时 A7:请检查网络连接是否正常,或者尝试使用代理IP -------------------------------------------------------------- 【五、重要注意事项】 1. 查询点数接口有频率限制:不得超过1秒1次,否则会被拉黑24小时 2. 识别接口的超时时间设置为120秒,请耐心等待结果 3. 不要将你的 APPKEY 泄露给他人 4. 请确保你的账户有足够的点数余额 5. PHP版本建议 7.0 以上,必须启用curl扩展 ==============================================================
查询点数
query_points.php
<?php
/**
* =============================================================
* 查询账户点数 Demo (PHP版)
*
* 功能说明:
* 查询账户剩余点数(余额)
*
* 使用方法:
* 1. 确保PHP已安装并启用curl扩展
* 2. 将下方的 APPKEY 替换为你自己的用户密钥
* 3. 运行脚本:php query_points.php
* =============================================================
*/
// ======================== 配置区域(请替换为你自己的参数)========================
// 用户密钥,登录平台后获取
$APPKEY = "你的appkey";
// ===============================================================================
// API基础地址
$API_BASE = "http://api.ttocr.com/api";
// ======================== 主流程 ========================
echo str_repeat("*", 60) . "\n";
echo " 查询账户点数 Demo (PHP版)\n";
echo str_repeat("*", 60) . "\n";
// 检查参数是否已配置
if ($APPKEY === "你的appkey") {
echo "\n[错误] 请先在脚本顶部的配置区域填写你的 APPKEY\n";
exit(1);
}
echo str_repeat("=", 50) . "\n";
echo "[查询点数] 正在查询账户剩余点数...\n";
echo str_repeat("=", 50) . "\n";
$url = $API_BASE . "/points?appkey=" . urlencode($APPKEY);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
$response = curl_exec($ch);
if (curl_errno($ch)) {
echo "[异常] 网络请求出错:" . curl_error($ch) . "\n";
curl_close($ch);
exit(1);
}
curl_close($ch);
$result = json_decode($response, true);
if ($result['status'] == 1) {
echo "[成功] 查询成功!当前可用点数:" . $result['points'] . "\n";
} else {
echo "[失败] 查询失败,错误信息:" . $result['msg'] . "\n";
echo "[提示] 错误状态码:" . $result['status'] . ",请参考错误代码表排查\n";
}
echo "[完整响应] " . json_encode($result, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT) . "\n";
echo "\n" . str_repeat("=", 50) . "\n";
echo "[完成] 查询执行完毕\n";
echo str_repeat("=", 50) . "\n";
?>
提交识别
recognize_yidun.php
<?php
/**
* =============================================================
* 易盾识别 Demo (PHP版)
*
* 功能说明:
* 提交易盾验证码识别任务
*
* 使用方法:
* 1. 确保PHP已安装并启用curl扩展
* 2. 将下方的 APPKEY 替换为你自己的用户密钥
* 3. 将 YIDUN_ID 替换为你获取到的易盾验证码 id 参数
* 4. 将 YIDUN_REFERER 替换为你获取到的 referer 值
* 5. 运行脚本:php recognize_yidun.php
* =============================================================
*/
// ======================== 配置区域(请替换为你自己的参数)========================
// 用户密钥,登录平台后获取
$APPKEY = "你的appkey";
// 易盾验证码的 id 参数值(从目标网站抓包获取)
$YIDUN_ID = "你获取到的易盾id";
// 易盾验证码的 referer 值(从目标网站抓包获取,注意不是当前页面的URL)
$YIDUN_REFERER = "你获取到的referer地址";
// 项目类型,易盾固定填写 500(特殊类型请联系客服)
$ITEM_ID = 500;
// 可选参数:代理IP(格式示例:http://IP:端口,若需白名单支持请联系客服。http://账号:密码@proxy.com:8080 或 socks5://127.0.0.1:9888)
$PROXY = "";
// 可选参数:开发者密钥(如果有的话填写)
$DEVKEY = "";
// ===============================================================================
// API基础地址
$API_BASE = "http://api.ttocr.com/api";
// ======================== 主流程 ========================
echo str_repeat("*", 60) . "\n";
echo " 易盾识别 Demo (PHP版)\n";
echo str_repeat("*", 60) . "\n";
// 检查参数是否已配置
if ($APPKEY === "你的appkey") {
echo "\n[错误] 请先在脚本顶部的配置区域填写你的 APPKEY\n";
exit(1);
}
if ($YIDUN_ID === "你获取到的易盾id") {
echo "\n[错误] 请先在脚本顶部的配置区域填写 YIDUN_ID 和 YIDUN_REFERER\n";
exit(1);
}
echo str_repeat("=", 50) . "\n";
echo "[易盾识别] 正在提交易盾识别任务...\n";
echo str_repeat("=", 50) . "\n";
$url = $API_BASE . "/recognize2";
// 构建POST请求数据
$postData = array(
'appkey' => $APPKEY,
'id' => $YIDUN_ID,
'referer' => $YIDUN_REFERER,
'itemid' => $ITEM_ID,
);
// 如果设置了代理,则添加代理参数
if (!empty($PROXY)) {
$postData['proxy'] = $PROXY;
}
// 如果设置了开发者密钥,则添加
if (!empty($DEVKEY)) {
$postData['devkey'] = $DEVKEY;
}
echo "[请求参数] id=" . $YIDUN_ID . "\n";
echo "[请求参数] referer=" . $YIDUN_REFERER . "\n";
echo "[请求参数] itemid=" . $ITEM_ID . "\n";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($postData));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 120); // 识别可能需要较长时间
$response = curl_exec($ch);
if (curl_errno($ch)) {
echo "[异常] 网络请求出错:" . curl_error($ch) . "\n";
curl_close($ch);
exit(1);
}
curl_close($ch);
$result = json_decode($response, true);
if ($result['status'] == 1) {
echo "[成功] 识别成功!耗时:" . $result['time'] . "ms\n";
echo "[识别结果] " . $result['data'] . "\n";
} else {
echo "[失败] 识别失败,错误信息:" . $result['msg'] . "\n";
echo "[提示] 错误状态码:" . $result['status'] . ",请参考错误代码表排查\n";
}
echo "\n[完整响应] " . json_encode($result, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT) . "\n";
echo "\n" . str_repeat("=", 50) . "\n";
echo "[完成] 识别执行完毕\n";
echo str_repeat("=", 50) . "\n";
?>
Python
Python
该语言注意事项
跟随当前语言展示- ============================================================== 易盾识别 对接示例 — Python版 使用说明 ============================================================== 【一、环境准备】 1. 安装 Python - 下载地址:https://www.python.org/downloads/ - 建议版本:Python 3.6 或以上(推荐 3.8+) - 安装时务必勾选 "Add Python to PATH"(添加到系统环境变量) - 安装完成后,打开命令行(cmd 或 PowerShell),输入以下命令验证: python --version 如果显示类似 "Python 3.x.x" 则安装成功 2. 安装依赖库 requests - 打开命令行,执行: pip install requests - 如果 pip 速度慢,可以使用国内镜像源: pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple - 安装完成后,可以用以下命令确认: pip show requests 看到版本号即表示安装成功 -------------------------------------------------------------- 【二、参数配置】 本Demo包含两个独立脚本: - query_points.py — 查询账户剩余点数 - recognize_yidun.py — 提交易盾验证码识别 请根据需要打开对应的脚本文件,找到顶部的"配置区域",修改以下参数: 1. APPKEY(必填) - 你的用户密钥,登录平台后在个人中心获取 - 示例:APPKEY = "abc123def456" 2. YIDUN_ID(必填) - 易盾验证码的 id 参数值 - 需要从目标网站通过浏览器开发者工具(F12)抓包获取 - 在网络请求中搜索与易盾相关的请求,找到 id 参数 - 示例:YIDUN_ID = "84e18cc9ea6a49c7845847d7518b8ddf" 3. YIDUN_REFERER(必填) - 易盾验证码请求中的 referer 值 - 同样需要从浏览器开发者工具(F12)抓包获取 - 注意:这个值不一定是你当前访问的页面URL,而是验证码请求头中的referer - 示例:YIDUN_REFERER = "https://example.com/captcha" 4. ITEM_ID(一般不需要改) - 易盾类型固定填写 500 - 特殊类型请联系客服确认 5. PROXY(可选) - 如果你需要通过代理IP访问,填写代理地址 - 支持的格式: * http://IP:端口 (普通HTTP代理,若需白名单支持请联系客服) * http://账号:密码@proxy.com:8080 (带认证的HTTP代理) * socks5://127.0.0.1:9888 (SOCKS5代理) - 不需要代理则留空:PROXY = "" 6. DEVKEY(可选) - 开发者密钥,如果你有的话填写,没有则留空 -------------------------------------------------------------- 【三、运行方式】 1. 打开命令行(cmd 或 PowerShell) 2. 切换到脚本所在目录: cd 易盾\python 查询点数: 3. 执行:python query_points.py - 仅查询账户剩余点数,确认APPKEY是否正确 易盾识别: 4. 执行:python recognize_yidun.py - 提交易盾验证码识别任务,等待服务器返回结果 5. 识别结果会在控制台中显示 -------------------------------------------------------------- 【四、常见问题】 Q1:运行时提示 "ModuleNotFoundError: No module named 'requests'" A1:说明 requests 库未安装,请执行 pip install requests Q2:运行时提示 "请先在脚本顶部的配置区域填写你的 APPKEY" A2:你还没有修改 APPKEY,请用你自己的密钥替换 "你的appkey" Q3:查询点数成功但识别失败 A3:请检查 YIDUN_ID 和 YIDUN_REFERER 是否正确,这两个值需要实时抓包获取 Q4:返回的 validate 无法通过目标网站验证 A4:尝试对返回的 validate 值进行 urlencode 编码后再使用 Q5:识别耗时较长(超过10秒) A5:这是正常现象,易盾验证码识别需要服务器端处理,耐心等待即可 Q6:提示网络请求出错 A6:请检查网络连接是否正常,或者尝试使用代理IP -------------------------------------------------------------- 【五、重要注意事项】 1. 查询点数接口有频率限制:不得超过1秒1次,否则会被拉黑24小时 2. 识别接口的超时时间设置为60秒,请耐心等待结果 3. 不要将你的 APPKEY 泄露给他人 4. 请确保你的账户有足够的点数余额 ==============================================================
查询点数
query_points.py
# -*- coding: utf-8 -*-
"""
=============================================================
查询账户点数 Demo (Python版)
功能说明:
查询账户剩余点数(余额)
使用方法:
1. 安装依赖:pip install requests
2. 将下方的 APPKEY 替换为你自己的用户密钥
3. 运行脚本:python query_points.py
=============================================================
"""
import requests
import json
import sys
# ======================== 配置区域(请替换为你自己的参数)========================
# 用户密钥,登录平台后获取
APPKEY = "你的appkey"
# ===============================================================================
# API基础地址
API_BASE = "http://api.ttocr.com/api"
def query_points():
"""
查询账户剩余点数
接口地址:GET http://api.ttocr.com/api/points
注意:查询点数不得超过1秒1次,否则会被拉黑24小时
"""
print("=" * 50)
print("[查询点数] 正在查询账户剩余点数...")
print("=" * 50)
url = f"{API_BASE}/points"
params = {"appkey": APPKEY}
try:
response = requests.get(url, params=params, timeout=10)
result = response.json()
if result.get("status") == 1:
print(f"[成功] 查询成功!当前可用点数:{result.get('points')}")
else:
print(f"[失败] 查询失败,错误信息:{result.get('msg')}")
print(f"[提示] 错误状态码:{result.get('status')},请参考错误代码表排查")
print(f"[完整响应] {json.dumps(result, ensure_ascii=False, indent=2)}")
return result
except requests.exceptions.RequestException as e:
print(f"[异常] 网络请求出错:{e}")
return None
if __name__ == "__main__":
print("*" * 60)
print(" 查询账户点数 Demo (Python版)")
print("*" * 60)
if APPKEY == "你的appkey":
print("\n[错误] 请先在脚本顶部的配置区域填写你的 APPKEY")
sys.exit(1)
query_points()
print("\n" + "=" * 50)
print("[完成] 查询执行完毕")
print("=" * 50)
提交识别
recognize_yidun.py
# -*- coding: utf-8 -*-
"""
=============================================================
易盾识别 Demo (Python版)
功能说明:
提交易盾验证码识别任务
使用方法:
1. 安装依赖:pip install requests
2. 将下方的 APPKEY 替换为你自己的用户密钥
3. 将 YIDUN_ID 替换为你获取到的易盾验证码 id 参数
4. 将 YIDUN_REFERER 替换为你获取到的 referer 值
5. 运行脚本:python recognize_yidun.py
=============================================================
"""
import requests
import json
import sys
# ======================== 配置区域(请替换为你自己的参数)========================
# 用户密钥,登录平台后获取
APPKEY = "你的appkey"
# 易盾验证码的 id 参数值(从目标网站抓包获取)
YIDUN_ID = "你获取到的易盾id"
# 易盾验证码的 referer 值(从目标网站抓包获取,注意不是当前页面的URL)
YIDUN_REFERER = "你获取到的referer地址"
# 项目类型,易盾固定填写 500(特殊类型请联系客服)
ITEM_ID = 500
# 可选参数:代理IP(格式示例:http://IP:端口,若需白名单支持请联系客服。http://账号:密码@proxy.com:8080 或 socks5://127.0.0.1:9888)
PROXY = ""
# 可选参数:开发者密钥(如果有的话填写)
DEVKEY = ""
# ===============================================================================
# API基础地址
API_BASE = "http://api.ttocr.com/api"
def recognize_yidun():
"""
提交易盾验证码识别任务
接口地址:POST http://api.ttocr.com/api/recognize2
必填参数:appkey, id, referer, itemid(固定500)
可选参数:proxy, devkey, ua, type
重要提示:如果结果无法通过验证,请将返回的validate进行urlencode编码后再尝试
"""
print("=" * 50)
print("[易盾识别] 正在提交易盾识别任务...")
print("=" * 50)
url = f"{API_BASE}/recognize2"
post_data = {
"appkey": APPKEY,
"id": YIDUN_ID,
"referer": YIDUN_REFERER,
"itemid": ITEM_ID,
}
if PROXY:
post_data["proxy"] = PROXY
if DEVKEY:
post_data["devkey"] = DEVKEY
print(f"[请求参数] id={YIDUN_ID}")
print(f"[请求参数] referer={YIDUN_REFERER}")
print(f"[请求参数] itemid={ITEM_ID}")
try:
response = requests.post(url, data=post_data, timeout=60)
result = response.json()
if result.get("status") == 1:
print(f"[成功] 识别成功!耗时:{result.get('time')}ms")
print(f"[识别结果] {result.get('data')}")
else:
print(f"[失败] 识别失败,错误信息:{result.get('msg')}")
print(f"[提示] 错误状态码:{result.get('status')},请参考错误代码表排查")
print(f"\n[完整响应] {json.dumps(result, ensure_ascii=False, indent=2)}")
return result
except requests.exceptions.RequestException as e:
print(f"[异常] 网络请求出错:{e}")
return None
if __name__ == "__main__":
print("*" * 60)
print(" 易盾识别 Demo (Python版)")
print("*" * 60)
if APPKEY == "你的appkey":
print("\n[错误] 请先在脚本顶部的配置区域填写你的 APPKEY")
sys.exit(1)
if YIDUN_ID == "你获取到的易盾id":
print("\n[错误] 请先在脚本顶部的配置区域填写 YIDUN_ID 和 YIDUN_REFERER")
sys.exit(1)
recognize_yidun()
print("\n" + "=" * 50)
print("[完成] 识别执行完毕")
print("=" * 50)
Node.js
Node.js
该语言注意事项
跟随当前语言展示- ============================================================== 易盾识别 对接示例 — Node.js版 使用说明 ============================================================== 【一、环境准备】 1. 安装 Node.js - 下载地址:https://nodejs.org/ - 建议下载 LTS(长期支持)版本,最低要求 v12+ - 安装过程中保持默认选项即可,安装程序会自动配置环境变量 - 安装完成后,打开命令行(cmd 或 PowerShell),输入以下命令验证: node --version npm --version 如果都能正常显示版本号则安装成功 2. 本Demo无需安装任何第三方依赖 - 使用的全部是 Node.js 内置模块(http、querystring) - 不需要执行 npm install,直接运行即可 -------------------------------------------------------------- 【二、参数配置】 本Demo包含两个独立脚本: - query_points.js — 查询账户剩余点数 - recognize_yidun.js — 提交易盾验证码识别 请根据需要打开对应的脚本文件,找到顶部的"配置区域",修改以下参数: 1. APPKEY(必填) - 你的用户密钥,登录平台后在个人中心获取 - 示例:const APPKEY = "abc123def456"; 2. YIDUN_ID(必填) - 易盾验证码的 id 参数值 - 需要从目标网站通过浏览器开发者工具(F12)抓包获取 - 在网络请求中搜索与易盾相关的请求,找到 id 参数 - 示例:const YIDUN_ID = "84e18cc9ea6a49c7845847d7518b8ddf"; 3. YIDUN_REFERER(必填) - 易盾验证码请求中的 referer 值 - 同样需要从浏览器开发者工具(F12)抓包获取 - 注意:这个值不一定是你当前访问的页面URL,而是验证码请求头中的referer 4. ITEM_ID(一般不需要改) - 易盾类型固定填写 500 - 特殊类型请联系客服确认 5. PROXY(可选) - 如果你需要通过代理IP访问,填写代理地址 - 支持的格式: * http://IP:端口 (普通HTTP代理,若需白名单支持请联系客服) * http://账号:密码@proxy.com:8080 (带认证的HTTP代理) * socks5://127.0.0.1:9888 (SOCKS5代理) - 不需要代理则留空:const PROXY = ""; 6. DEVKEY(可选) - 开发者密钥,如果你有的话填写,没有则留空 -------------------------------------------------------------- 【三、运行方式】 1. 打开命令行(cmd 或 PowerShell) 2. 切换到脚本所在目录: cd 易盾\nodejs 查询点数: 3. 执行:node query_points.js - 仅查询账户剩余点数,确认APPKEY是否正确 易盾识别: 4. 执行:node recognize_yidun.js - 提交易盾验证码识别任务,等待服务器返回结果 5. 识别结果会在控制台中显示 -------------------------------------------------------------- 【四、常见问题】 Q1:运行时提示 "node 不是内部或外部命令" A1:Node.js未安装或环境变量未配置,请重新安装Node.js并确保勾选添加到PATH Q2:运行时提示 "请先在脚本顶部的配置区域填写你的 APPKEY" A2:你还没有修改 APPKEY,请用你自己的密钥替换 "你的appkey" Q3:查询点数成功但识别失败 A3:请检查 YIDUN_ID 和 YIDUN_REFERER 是否正确,这两个值需要实时抓包获取 Q4:返回的 validate 无法通过目标网站验证 A4:尝试对返回的 validate 值进行 encodeURIComponent() 编码后再使用 Q5:识别耗时较长(超过10秒) A5:这是正常现象,易盾验证码识别需要服务器端处理,耐心等待即可 Q6:提示网络请求出错或连接超时 A6:请检查网络连接是否正常,或者尝试使用代理IP -------------------------------------------------------------- 【五、重要注意事项】 1. 查询点数接口有频率限制:不得超过1秒1次,否则会被拉黑24小时 2. 识别接口的超时时间设置为120秒,请耐心等待结果 3. 不要将你的 APPKEY 泄露给他人 4. 请确保你的账户有足够的点数余额 5. 本Demo使用纯Node.js内置模块,无需额外安装任何npm包 ==============================================================
查询点数
query_points.js
/**
* =============================================================
* 查询账户点数 Demo (Node.js版)
*
* 功能说明:
* 查询账户剩余点数(余额)
*
* 使用方法:
* 1. 确保已安装 Node.js (建议 v12+)
* 2. 将下方的 APPKEY 替换为你自己的用户密钥
* 3. 运行脚本:node query_points.js
* 注意:本Demo使用Node.js内置模块,无需安装第三方依赖
* =============================================================
*/
const http = require('http');
// ======================== 配置区域(请替换为你自己的参数)========================
// 用户密钥,登录平台后获取
const APPKEY = "你的appkey";
// ===============================================================================
// API基础地址
const API_BASE = "http://api.ttocr.com/api";
/**
* 发送HTTP GET请求
*/
function httpGet(url) {
return new Promise((resolve, reject) => {
http.get(url, { timeout: 10000 }, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => {
try { resolve(JSON.parse(data)); }
catch (e) { reject(new Error('JSON解析失败: ' + data)); }
});
}).on('error', reject);
});
}
/**
* 查询账户剩余点数
* 接口地址:GET http://api.ttocr.com/api/points
* 注意:查询点数不得超过1秒1次,否则会被拉黑24小时
*/
async function queryPoints() {
console.log("=".repeat(50));
console.log("[查询点数] 正在查询账户剩余点数...");
console.log("=".repeat(50));
try {
const url = `${API_BASE}/points?appkey=${encodeURIComponent(APPKEY)}`;
const result = await httpGet(url);
if (result.status === 1) {
console.log(`[成功] 查询成功!当前可用点数:${result.points}`);
} else {
console.log(`[失败] 查询失败,错误信息:${result.msg}`);
console.log(`[提示] 错误状态码:${result.status},请参考错误代码表排查`);
}
console.log(`[完整响应] ${JSON.stringify(result, null, 2)}`);
return result;
} catch (e) {
console.log(`[异常] 网络请求出错:${e.message}`);
return null;
}
}
// 主流程
async function main() {
console.log("*".repeat(60));
console.log(" 查询账户点数 Demo (Node.js版)");
console.log("*".repeat(60));
if (APPKEY === "你的appkey") {
console.log("\n[错误] 请先在脚本顶部的配置区域填写你的 APPKEY");
process.exit(1);
}
await queryPoints();
console.log("\n" + "=".repeat(50));
console.log("[完成] 查询执行完毕");
console.log("=".repeat(50));
}
main().catch(err => {
console.error("[致命错误]", err.message);
process.exit(1);
});
提交识别
recognize_yidun.js
/**
* =============================================================
* 易盾识别 Demo (Node.js版)
*
* 功能说明:
* 提交易盾验证码识别任务
*
* 使用方法:
* 1. 确保已安装 Node.js (建议 v12+)
* 2. 将下方的 APPKEY 替换为你自己的用户密钥
* 3. 将 YIDUN_ID 替换为你获取到的易盾验证码 id 参数
* 4. 将 YIDUN_REFERER 替换为你获取到的 referer 值
* 5. 运行脚本:node recognize_yidun.js
* 注意:本Demo使用Node.js内置模块,无需安装第三方依赖
* =============================================================
*/
const http = require('http');
const querystring = require('querystring');
// ======================== 配置区域(请替换为你自己的参数)========================
// 用户密钥,登录平台后获取
const APPKEY = "你的appkey";
// 易盾验证码的 id 参数值(从目标网站抓包获取)
const YIDUN_ID = "你获取到的易盾id";
// 易盾验证码的 referer 值(从目标网站抓包获取,注意不是当前页面的URL)
const YIDUN_REFERER = "你获取到的referer地址";
// 项目类型,易盾固定填写 500(特殊类型请联系客服)
const ITEM_ID = 500;
// 可选参数:代理IP(格式示例:http://IP:端口,若需白名单支持请联系客服。http://账号:密码@proxy.com:8080 或 socks5://127.0.0.1:9888)
const PROXY = "";
// 可选参数:开发者密钥(如果有的话填写)
const DEVKEY = "";
// ===============================================================================
// API基础地址
const API_BASE = "http://api.ttocr.com/api";
/**
* 发送HTTP POST请求(表单数据)
*/
function httpPost(url, postData) {
return new Promise((resolve, reject) => {
const data = querystring.stringify(postData);
const urlObj = new URL(url);
const options = {
hostname: urlObj.hostname,
port: urlObj.port || 80,
path: urlObj.pathname,
method: 'POST',
timeout: 120000, // 识别可能需要较长时间
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
'Content-Length': Buffer.byteLength(data)
}
};
const req = http.request(options, (res) => {
let body = '';
res.on('data', (chunk) => { body += chunk; });
res.on('end', () => {
try { resolve(JSON.parse(body)); }
catch (e) { reject(new Error('JSON解析失败: ' + body)); }
});
});
req.on('error', reject);
req.write(data);
req.end();
});
}
/**
* 提交易盾验证码识别任务
* 接口地址:POST http://api.ttocr.com/api/recognize2
* 必填参数:appkey, id, referer, itemid(固定500)
* 可选参数:proxy, devkey, ua, type
* 重要提示:如果结果无法通过验证,请将返回的validate进行urlencode编码后再尝试
*/
async function recognizeYidun() {
console.log("=".repeat(50));
console.log("[易盾识别] 正在提交易盾识别任务...");
console.log("=".repeat(50));
const postData = {
appkey: APPKEY,
id: YIDUN_ID,
referer: YIDUN_REFERER,
itemid: ITEM_ID,
};
if (PROXY) { postData.proxy = PROXY; }
if (DEVKEY) { postData.devkey = DEVKEY; }
console.log(`[请求参数] id=${YIDUN_ID}`);
console.log(`[请求参数] referer=${YIDUN_REFERER}`);
console.log(`[请求参数] itemid=${ITEM_ID}`);
try {
const url = `${API_BASE}/recognize2`;
const result = await httpPost(url, postData);
if (result.status === 1) {
console.log(`[成功] 识别成功!耗时:${result.time}ms`);
console.log(`[识别结果] ${result.data}`);
} else {
console.log(`[失败] 识别失败,错误信息:${result.msg}`);
console.log(`[提示] 错误状态码:${result.status},请参考错误代码表排查`);
}
console.log(`\n[完整响应] ${JSON.stringify(result, null, 2)}`);
return result;
} catch (e) {
console.log(`[异常] 网络请求出错:${e.message}`);
return null;
}
}
// 主流程
async function main() {
console.log("*".repeat(60));
console.log(" 易盾识别 Demo (Node.js版)");
console.log("*".repeat(60));
if (APPKEY === "你的appkey") {
console.log("\n[错误] 请先在脚本顶部的配置区域填写你的 APPKEY");
process.exit(1);
}
if (YIDUN_ID === "你获取到的易盾id") {
console.log("\n[错误] 请先在脚本顶部的配置区域填写 YIDUN_ID 和 YIDUN_REFERER");
process.exit(1);
}
await recognizeYidun();
console.log("\n" + "=".repeat(50));
console.log("[完成] 识别执行完毕");
console.log("=".repeat(50));
}
main().catch(err => {
console.error("[致命错误]", err.message);
process.exit(1);
});
Java
Java
该语言注意事项
跟随当前语言展示- ============================================================== 易盾识别 对接示例 — Java版 使用说明 ============================================================== 【一、环境准备】 1. 安装 JDK(Java Development Kit) - 下载地址:https://www.oracle.com/java/technologies/downloads/ - 也可以使用免费的 OpenJDK:https://adoptium.net/ - 建议版本:JDK 8 或以上(推荐 JDK 11+) - 安装完成后,需要配置环境变量: * JAVA_HOME = JDK安装目录(例如 C:\Program Files\Java\jdk-11) * 在 Path 中添加 %JAVA_HOME%\bin - 打开命令行(cmd),输入以下命令验证: java -version javac -version 如果都能正常显示版本号则配置成功 2. 本Demo无需任何第三方依赖 - 使用的全部是 JDK 自带的标准库(java.net、java.io等) - 不需要 Maven、Gradle 或其他构建工具 -------------------------------------------------------------- 【二、参数配置】 本Demo包含两个独立源码文件: - QueryPoints.java — 查询账户剩余点数 - RecognizeYidun.java — 提交易盾验证码识别 请根据需要打开对应的源码文件,找到顶部的"配置区域",修改以下参数: 1. APPKEY(必填) - 你的用户密钥,登录平台后在个人中心获取 - 示例:private static final String APPKEY = "abc123def456"; 2. YIDUN_ID(必填) - 易盾验证码的 id 参数值 - 需要从目标网站通过浏览器开发者工具(F12)抓包获取 - 在网络请求中搜索与易盾相关的请求,找到 id 参数 - 示例:private static final String YIDUN_ID = "84e18cc9ea6a..."; 3. YIDUN_REFERER(必填) - 易盾验证码请求中的 referer 值 - 同样需要从浏览器开发者工具(F12)抓包获取 - 注意:这个值不一定是你当前访问的页面URL,而是验证码请求头中的referer 4. ITEM_ID(一般不需要改) - 易盾类型固定填写 500 - 特殊类型请联系客服确认 5. PROXY(可选) - 如果你需要通过代理IP访问,填写代理地址 - 支持的格式: * http://IP:端口 (普通HTTP代理,若需白名单支持请联系客服) * http://账号:密码@proxy.com:8080 (带认证的HTTP代理) * socks5://127.0.0.1:9888 (SOCKS5代理) - 不需要代理则留空:private static final String PROXY = ""; 6. DEVKEY(可选) - 开发者密钥,如果你有的话填写,没有则留空 -------------------------------------------------------------- 【三、编译与运行】 1. 打开命令行(cmd 或 PowerShell) 2. 切换到源码所在目录: cd 易盾\java 查询点数: 3. 编译并运行: javac -encoding UTF-8 QueryPoints.java && java QueryPoints 易盾识别: 4. 编译并运行: javac -encoding UTF-8 RecognizeYidun.java && java RecognizeYidun 注意:编译时必须加 -encoding UTF-8 参数,否则中文注释可能导致编译错误 -------------------------------------------------------------- 【四、常见问题】 Q1:编译时提示 "javac 不是内部或外部命令" A1:JDK未安装或环境变量未配置,请按"环境准备"步骤配置JAVA_HOME和Path Q2:编译时出现中文乱码或编码错误 A2:请在编译命令中加上 -encoding UTF-8 参数 Q3:运行时提示 "请先在代码顶部的配置区域填写你的 APPKEY" A3:你还没有修改 APPKEY,请用你自己的密钥替换 "你的appkey" Q4:查询点数成功但识别失败 A4:请检查 YIDUN_ID 和 YIDUN_REFERER 是否正确,这两个值需要实时抓包获取 Q5:返回的 validate 无法通过目标网站验证 A5:尝试对返回的 validate 值进行 URLEncoder.encode() 编码后再使用 Q6:识别耗时较长(超过10秒) A6:这是正常现象,易盾验证码识别需要服务器端处理,耐心等待即可 Q7:提示网络请求出错或连接超时 A7:请检查网络连接是否正常,或者尝试使用代理IP -------------------------------------------------------------- 【五、重要注意事项】 1. 查询点数接口有频率限制:不得超过1秒1次,否则会被拉黑24小时 2. 识别接口的超时时间设置为120秒,请耐心等待结果 3. 不要将你的 APPKEY 泄露给他人 4. 请确保你的账户有足够的点数余额 5. 编译时务必使用 -encoding UTF-8 避免编码问题 ==============================================================
查询点数
QueryPoints.java
import java.io.*;
import java.net.*;
import java.nio.charset.StandardCharsets;
/**
* =============================================================
* 查询账户点数 Demo (Java版)
*
* 功能说明:
* 查询账户剩余点数(余额)
*
* 使用方法:
* 1. 将下方的 APPKEY 替换为你自己的用户密钥
* 2. 编译运行:javac -encoding UTF-8 QueryPoints.java && java QueryPoints
* =============================================================
*/
public class QueryPoints {
// ======================== 配置区域(请替换为你自己的参数)========================
// 用户密钥,登录平台后获取
private static final String APPKEY = "你的appkey";
// ===============================================================================
// API基础地址
private static final String API_BASE = "http://api.ttocr.com/api";
/**
* 发送GET请求
*/
private static String httpGet(String urlStr) throws Exception {
URL url = new URL(urlStr);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setConnectTimeout(10000);
conn.setReadTimeout(10000);
BufferedReader reader = new BufferedReader(
new InputStreamReader(conn.getInputStream(), StandardCharsets.UTF_8));
StringBuilder sb = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
sb.append(line);
}
reader.close();
conn.disconnect();
return sb.toString();
}
/**
* 查询账户剩余点数
* 接口地址:GET http://api.ttocr.com/api/points
* 注意:查询点数不得超过1秒1次,否则会被拉黑24小时
*/
public static void main(String[] args) {
System.out.println("************************************************************");
System.out.println(" 查询账户点数 Demo (Java版)");
System.out.println("************************************************************");
// 检查参数是否已配置
if ("你的appkey".equals(APPKEY)) {
System.out.println("\n[错误] 请先在代码顶部的配置区域填写你的 APPKEY");
System.exit(1);
}
System.out.println("==================================================");
System.out.println("[查询点数] 正在查询账户剩余点数...");
System.out.println("==================================================");
try {
String url = API_BASE + "/points?appkey=" + URLEncoder.encode(APPKEY, "UTF-8");
String result = httpGet(url);
System.out.println("[完整响应] " + result);
} catch (Exception e) {
System.out.println("[异常] 网络请求出错:" + e.getMessage());
}
System.out.println("\n==================================================");
System.out.println("[完成] 查询执行完毕");
System.out.println("==================================================");
}
}
提交识别
RecognizeYidun.java
import java.io.*;
import java.net.*;
import java.nio.charset.StandardCharsets;
/**
* =============================================================
* 易盾识别 Demo (Java版)
*
* 功能说明:
* 提交易盾验证码识别任务
*
* 使用方法:
* 1. 将下方的 APPKEY 替换为你自己的用户密钥
* 2. 将 YIDUN_ID 替换为你获取到的易盾验证码 id 参数
* 3. 将 YIDUN_REFERER 替换为你获取到的 referer 值
* 4. 编译运行:javac -encoding UTF-8 RecognizeYidun.java && java RecognizeYidun
* =============================================================
*/
public class RecognizeYidun {
// ======================== 配置区域(请替换为你自己的参数)========================
// 用户密钥,登录平台后获取
private static final String APPKEY = "你的appkey";
// 易盾验证码的 id 参数值(从目标网站抓包获取)
private static final String YIDUN_ID = "你获取到的易盾id";
// 易盾验证码的 referer 值(从目标网站抓包获取,注意不是当前页面的URL)
private static final String YIDUN_REFERER = "你获取到的referer地址";
// 项目类型,易盾固定填写 500(特殊类型请联系客服)
private static final int ITEM_ID = 500;
// 可选参数:代理IP(格式示例:http://IP:端口,若需白名单支持请联系客服。http://账号:密码@proxy.com:8080 或 socks5://127.0.0.1:9888)
private static final String PROXY = "";
// 可选参数:开发者密钥(如果有的话填写)
private static final String DEVKEY = "";
// ===============================================================================
// API基础地址
private static final String API_BASE = "http://api.ttocr.com/api";
/**
* 发送POST请求(表单数据)
*/
private static String httpPost(String urlStr, String postData) throws Exception {
URL url = new URL(urlStr);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setDoOutput(true);
conn.setConnectTimeout(10000);
conn.setReadTimeout(120000); // 识别可能需要较长时间
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
OutputStream os = conn.getOutputStream();
os.write(postData.getBytes(StandardCharsets.UTF_8));
os.flush();
os.close();
BufferedReader reader = new BufferedReader(
new InputStreamReader(conn.getInputStream(), StandardCharsets.UTF_8));
StringBuilder sb = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
sb.append(line);
}
reader.close();
conn.disconnect();
return sb.toString();
}
/**
* 提交易盾验证码识别任务
* 接口地址:POST http://api.ttocr.com/api/recognize2
* 必填参数:appkey, id, referer, itemid(固定500)
* 可选参数:proxy, devkey, ua, type
* 重要提示:如果结果无法通过验证,请将返回的validate进行urlencode编码后再尝试
*/
public static void main(String[] args) {
System.out.println("************************************************************");
System.out.println(" 易盾识别 Demo (Java版)");
System.out.println("************************************************************");
// 检查参数是否已配置
if ("你的appkey".equals(APPKEY)) {
System.out.println("\n[错误] 请先在代码顶部的配置区域填写你的 APPKEY");
System.exit(1);
}
if ("你获取到的易盾id".equals(YIDUN_ID)) {
System.out.println("\n[错误] 请先在代码顶部的配置区域填写 YIDUN_ID 和 YIDUN_REFERER");
System.exit(1);
}
System.out.println("==================================================");
System.out.println("[易盾识别] 正在提交易盾识别任务...");
System.out.println("==================================================");
try {
String url = API_BASE + "/recognize2";
// 构建POST请求数据
StringBuilder postData = new StringBuilder();
postData.append("appkey=").append(URLEncoder.encode(APPKEY, "UTF-8"));
postData.append("&id=").append(URLEncoder.encode(YIDUN_ID, "UTF-8"));
postData.append("&referer=").append(URLEncoder.encode(YIDUN_REFERER, "UTF-8"));
postData.append("&itemid=").append(ITEM_ID);
// 如果设置了代理,则添加代理参数
if (PROXY != null && !PROXY.isEmpty()) {
postData.append("&proxy=").append(URLEncoder.encode(PROXY, "UTF-8"));
}
// 如果设置了开发者密钥,则添加
if (DEVKEY != null && !DEVKEY.isEmpty()) {
postData.append("&devkey=").append(URLEncoder.encode(DEVKEY, "UTF-8"));
}
System.out.println("[请求参数] id=" + YIDUN_ID);
System.out.println("[请求参数] referer=" + YIDUN_REFERER);
System.out.println("[请求参数] itemid=" + ITEM_ID);
String result = httpPost(url, postData.toString());
System.out.println("[完整响应] " + result);
} catch (Exception e) {
System.out.println("[异常] 网络请求出错:" + e.getMessage());
}
System.out.println("\n==================================================");
System.out.println("[完成] 识别执行完毕");
System.out.println("==================================================");
}
}
C#
C#
该语言注意事项
跟随当前语言展示- ============================================================== 易盾识别 对接示例 — C#版 使用说明 ============================================================== 【一、环境准备】 你可以选择以下任一方式来编译运行本Demo: 方式A:使用 .NET SDK(推荐,适合没有Visual Studio的用户) -------------------------------------------------------- 1. 下载 .NET SDK - 下载地址:https://dotnet.microsoft.com/download - 建议下载 .NET 6.0 或以上版本 - 安装完成后,打开命令行(cmd 或 PowerShell),输入以下命令验证: dotnet --version 如果显示版本号则安装成功 方式B:使用 Visual Studio -------------------------------------------------------- 1. 下载 Visual Studio - 下载地址:https://visualstudio.microsoft.com/ - 免费版(Community)即可 - 安装时勾选".NET 桌面开发"工作负载 方式C:使用 .NET Framework 自带的 csc 编译器(无需安装额外软件) -------------------------------------------------------- 1. Windows系统自带 .NET Framework,其中包含 csc.exe 编译器 2. csc.exe 通常位于: C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe 或(64位系统): C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe -------------------------------------------------------------- 【二、参数配置】 本Demo包含两个独立源码文件: - QueryPoints.cs — 查询账户剩余点数 - RecognizeYidun.cs — 提交易盾验证码识别 请根据需要打开对应的源码文件,找到顶部的"配置区域",修改以下参数: 1. APPKEY(必填) - 你的用户密钥,登录平台后在个人中心获取 - 示例:static string APPKEY = "abc123def456"; 2. YIDUN_ID(必填) - 易盾验证码的 id 参数值 - 需要从目标网站通过浏览器开发者工具(F12)抓包获取 - 在网络请求中搜索与易盾相关的请求,找到 id 参数 3. YIDUN_REFERER(必填) - 易盾验证码请求中的 referer 值 - 同样需要从浏览器开发者工具(F12)抓包获取 - 注意:这个值不一定是你当前访问的页面URL,而是验证码请求头中的referer 4. ITEM_ID(一般不需要改) - 易盾类型固定填写 500 5. PROXY(可选) - 如果你需要通过代理IP访问,填写代理地址 - 支持的格式: * http://IP:端口 (普通HTTP代理,若需白名单支持请联系客服) * http://账号:密码@proxy.com:8080 (带认证的HTTP代理) * socks5://127.0.0.1:9888 (SOCKS5代理) - 不需要代理则留空:static string PROXY = ""; 6. DEVKEY(可选) - 开发者密钥,如果你有的话填写,没有则留空 -------------------------------------------------------------- 【三、编译与运行】 方式A:使用 .NET SDK(dotnet命令行) -------------------------------------------------------- 1. 打开命令行,切换到源码目录: cd 易盾\csharp 2. 创建项目(首次使用时执行一次): dotnet new console --force 3. 将对应的 .cs 文件内容复制替换生成的 Program.cs 4. 运行: dotnet run 方式B:使用 Visual Studio -------------------------------------------------------- 1. 打开 Visual Studio,创建一个新的"控制台应用程序"项目 2. 将对应的 .cs 文件内容复制替换到 Program.cs 中 3. 按 F5 或 Ctrl+F5 运行 方式C:使用 csc.exe 直接编译 -------------------------------------------------------- 1. 打开命令行,切换到源码目录: cd 易盾\csharp 查询点数: 2. 编译并运行: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe /out:QueryPoints.exe QueryPoints.cs QueryPoints.exe 易盾识别: 3. 编译并运行: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe /out:RecognizeYidun.exe RecognizeYidun.cs RecognizeYidun.exe -------------------------------------------------------------- 【四、常见问题】 Q1:编译时提示 "csc 不是内部或外部命令" A1:请使用完整路径调用csc.exe,或者安装 .NET SDK 后使用 dotnet run Q2:编译时提示找不到 System.Web 命名空间 A2:使用csc编译时需要引用System.Web.dll: csc /r:System.Web.dll /out:RecognizeYidun.exe RecognizeYidun.cs Q3:运行时提示 "请先在代码顶部的配置区域填写你的 APPKEY" A3:你还没有修改 APPKEY,请用你自己的密钥替换 "你的appkey" Q4:查询点数成功但识别失败 A4:请检查 YIDUN_ID 和 YIDUN_REFERER 是否正确,这两个值需要实时抓包获取 Q5:返回的 validate 无法通过目标网站验证 A5:尝试对返回的 validate 值进行 Uri.EscapeDataString() 编码后再使用 Q6:识别耗时较长(超过10秒) A6:这是正常现象,易盾验证码识别需要服务器端处理,耐心等待即可 -------------------------------------------------------------- 【五、重要注意事项】 1. 查询点数接口有频率限制:不得超过1秒1次,否则会被拉黑24小时 2. 识别接口的超时时间设置为120秒,请耐心等待结果 3. 不要将你的 APPKEY 泄露给他人 4. 请确保你的账户有足够的点数余额 5. 本Demo无需任何第三方NuGet包,使用.NET标准库即可运行 ==============================================================
查询点数
QueryPoints.cs
using System;
using System.IO;
using System.Net;
using System.Text;
/// <summary>
/// =============================================================
/// 查询账户点数 Demo (C#版)
///
/// 功能说明:
/// 查询账户剩余点数(余额)
///
/// 使用方法:
/// 1. 将下方的 APPKEY 替换为你自己的用户密钥
/// 2. 编译运行:csc QueryPoints.cs && QueryPoints.exe
/// 或使用 dotnet run
/// =============================================================
/// </summary>
class QueryPoints
{
// ======================== 配置区域(请替换为你自己的参数)========================
// 用户密钥,登录平台后获取
static string APPKEY = "你的appkey";
// ===============================================================================
// API基础地址
static string API_BASE = "http://api.ttocr.com/api";
/// <summary>
/// 发送GET请求
/// </summary>
static string HttpGet(string url)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "GET";
request.Timeout = 10000;
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8))
{
return reader.ReadToEnd();
}
}
static void Main(string[] args)
{
Console.OutputEncoding = Encoding.UTF8;
Console.WriteLine(new string('*', 60));
Console.WriteLine(" 查询账户点数 Demo (C#版)");
Console.WriteLine(new string('*', 60));
// 检查参数是否已配置
if (APPKEY == "你的appkey")
{
Console.WriteLine("\n[错误] 请先在代码顶部的配置区域填写你的 APPKEY");
Environment.Exit(1);
}
Console.WriteLine(new string('=', 50));
Console.WriteLine("[查询点数] 正在查询账户剩余点数...");
Console.WriteLine(new string('=', 50));
try
{
string url = API_BASE + "/points?appkey=" + Uri.EscapeDataString(APPKEY);
string result = HttpGet(url);
Console.WriteLine("[完整响应] " + result);
}
catch (Exception e)
{
Console.WriteLine("[异常] 网络请求出错:" + e.Message);
}
Console.WriteLine();
Console.WriteLine(new string('=', 50));
Console.WriteLine("[完成] 查询执行完毕");
Console.WriteLine(new string('=', 50));
}
}
提交识别
RecognizeYidun.cs
using System;
using System.IO;
using System.Net;
using System.Text;
/// <summary>
/// =============================================================
/// 易盾识别 Demo (C#版)
///
/// 功能说明:
/// 提交易盾验证码识别任务
///
/// 使用方法:
/// 1. 将下方的 APPKEY 替换为你自己的用户密钥
/// 2. 将 YIDUN_ID 替换为你获取到的易盾验证码 id 参数
/// 3. 将 YIDUN_REFERER 替换为你获取到的 referer 值
/// 4. 编译运行:csc RecognizeYidun.cs && RecognizeYidun.exe
/// 或使用 dotnet run
/// =============================================================
/// </summary>
class RecognizeYidun
{
// ======================== 配置区域(请替换为你自己的参数)========================
// 用户密钥,登录平台后获取
static string APPKEY = "你的appkey";
// 易盾验证码的 id 参数值(从目标网站抓包获取)
static string YIDUN_ID = "你获取到的易盾id";
// 易盾验证码的 referer 值(从目标网站抓包获取,注意不是当前页面的URL)
static string YIDUN_REFERER = "你获取到的referer地址";
// 项目类型,易盾固定填写 500(特殊类型请联系客服)
static int ITEM_ID = 500;
// 可选参数:代理IP(格式示例:http://IP:端口,若需白名单支持请联系客服。http://账号:密码@proxy.com:8080 或 socks5://127.0.0.1:9888)
static string PROXY = "";
// 可选参数:开发者密钥(如果有的话填写)
static string DEVKEY = "";
// ===============================================================================
// API基础地址
static string API_BASE = "http://api.ttocr.com/api";
/// <summary>
/// 发送POST请求(表单数据)
/// </summary>
static string HttpPost(string url, string postData)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.Timeout = 120000; // 识别可能需要较长时间
byte[] data = Encoding.UTF8.GetBytes(postData);
request.ContentLength = data.Length;
using (Stream stream = request.GetRequestStream())
{
stream.Write(data, 0, data.Length);
}
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8))
{
return reader.ReadToEnd();
}
}
static void Main(string[] args)
{
Console.OutputEncoding = Encoding.UTF8;
Console.WriteLine(new string('*', 60));
Console.WriteLine(" 易盾识别 Demo (C#版)");
Console.WriteLine(new string('*', 60));
// 检查参数是否已配置
if (APPKEY == "你的appkey")
{
Console.WriteLine("\n[错误] 请先在代码顶部的配置区域填写你的 APPKEY");
Environment.Exit(1);
}
if (YIDUN_ID == "你获取到的易盾id")
{
Console.WriteLine("\n[错误] 请先在代码顶部的配置区域填写 YIDUN_ID 和 YIDUN_REFERER");
Environment.Exit(1);
}
Console.WriteLine(new string('=', 50));
Console.WriteLine("[易盾识别] 正在提交易盾识别任务...");
Console.WriteLine(new string('=', 50));
try
{
string url = API_BASE + "/recognize2";
// 构建POST请求数据
StringBuilder postData = new StringBuilder();
postData.Append("appkey=").Append(Uri.EscapeDataString(APPKEY));
postData.Append("&id=").Append(Uri.EscapeDataString(YIDUN_ID));
postData.Append("&referer=").Append(Uri.EscapeDataString(YIDUN_REFERER));
postData.Append("&itemid=").Append(ITEM_ID);
// 如果设置了代理,则添加代理参数
if (!string.IsNullOrEmpty(PROXY))
{
postData.Append("&proxy=").Append(Uri.EscapeDataString(PROXY));
}
// 如果设置了开发者密钥,则添加
if (!string.IsNullOrEmpty(DEVKEY))
{
postData.Append("&devkey=").Append(Uri.EscapeDataString(DEVKEY));
}
Console.WriteLine("[请求参数] id=" + YIDUN_ID);
Console.WriteLine("[请求参数] referer=" + YIDUN_REFERER);
Console.WriteLine("[请求参数] itemid=" + ITEM_ID);
string result = HttpPost(url, postData.ToString());
Console.WriteLine("[完整响应] " + result);
}
catch (Exception e)
{
Console.WriteLine("[异常] 网络请求出错:" + e.Message);
}
Console.WriteLine();
Console.WriteLine(new string('=', 50));
Console.WriteLine("[完成] 识别执行完毕");
Console.WriteLine(new string('=', 50));
}
}