CaptchaAI chấp nhận các yêu cầu ở cả định dạng được mã hóa biểu mẫu và JSON. Cả hai đều hoạt động giống nhau — hãy chọn dựa trên ngôn ngữ và sở thích của bạn.
So sánh song song
Mã hóa biểu mẫu (Mặc định)
import requests
resp = requests.post("https://ocr.captchaai.com/in.php", data={
"key": "YOUR_API_KEY",
"method": "userrecaptcha",
"googlekey": "SITE_KEY",
"pageurl": "https://example.com",
"json": 1,
})
Loại nội dung: application/x-www-form-urlencoded
JSON
import requests
resp = requests.post("https://ocr.captchaai.com/in.php", json={
"key": "YOUR_API_KEY",
"method": "userrecaptcha",
"googlekey": "SITE_KEY",
"pageurl": "https://example.com",
"json": 1,
})
Loại nội dung: application/json
Sự khác biệt chính
| Yếu tố | Được mã hóa biểu mẫu | JSON |
|---|---|---|
| Loại nội dung | application/x-www-form-urlencoded |
application/json |
| Cấu trúc dữ liệu | Cặp khóa-giá trị phẳng | Các đối tượng lồng nhau có thể |
| Dữ liệu nhị phân | Sử dụng nhiều phần để tải lên tập tin | Mã hóa Base64 trong trường nội dung |
| Hỗ trợ mảng | bị giới hạn | Bản địa |
| Từ khóa Python | data={} |
json={} |
| Node.js | URLSearchParams |
JSON.stringify() |
| Khả năng đọc | Đơn giản cho các thông số phẳng | Tốt hơn cho dữ liệu phức tạp |
| Khả năng tương thích | Hoạt động ở mọi nơi | Hoạt động ở mọi nơi |
Định dạng phản hồi
Thêm json=1 để nhận phản hồi JSON bất kể định dạng yêu cầu:
# Without json=1 — plain text response
resp = requests.post("https://ocr.captchaai.com/in.php", data={
"key": "YOUR_API_KEY",
"method": "userrecaptcha",
"googlekey": "SITE_KEY",
"pageurl": "https://example.com",
})
# Response: "OK|12345678"
# With json=1 — JSON response
resp = requests.post("https://ocr.captchaai.com/in.php", data={
"key": "YOUR_API_KEY",
"method": "userrecaptcha",
"googlekey": "SITE_KEY",
"pageurl": "https://example.com",
"json": 1,
})
# Response: {"status": 1, "request": "12345678"}
Luôn sử dụng json=1 để phân tích cú pháp dễ dàng hơn.
Ví dụ về Python
Được mã hóa biểu mẫu
import requests
# Submit
resp = requests.post("https://ocr.captchaai.com/in.php", data={
"key": "YOUR_API_KEY",
"method": "userrecaptcha",
"googlekey": "SITE_KEY",
"pageurl": "https://example.com",
"json": 1,
})
task_id = resp.json()["request"]
# Poll (always GET with query params)
resp = requests.get("https://ocr.captchaai.com/res.php", params={
"key": "YOUR_API_KEY",
"action": "get",
"id": task_id,
"json": 1,
})
Nội dung JSON
import requests
# Submit with JSON
resp = requests.post("https://ocr.captchaai.com/in.php", json={
"key": "YOUR_API_KEY",
"method": "userrecaptcha",
"googlekey": "SITE_KEY",
"pageurl": "https://example.com",
"json": 1,
})
task_id = resp.json()["request"]
# Poll (same as form-encoded — GET with params)
resp = requests.get("https://ocr.captchaai.com/res.php", params={
"key": "YOUR_API_KEY",
"action": "get",
"id": task_id,
"json": 1,
})
Ví dụ về Node.js
Được mã hóa biểu mẫu
const axios = require('axios');
const qs = require('querystring');
// Submit
const resp = await axios.post(
'https://ocr.captchaai.com/in.php',
qs.stringify({
key: 'YOUR_API_KEY',
method: 'userrecaptcha',
googlekey: 'SITE_KEY',
pageurl: 'https://example.com',
json: 1,
})
);
const taskId = resp.data.request;
Nội dung JSON
const axios = require('axios');
// Submit with JSON
const resp = await axios.post(
'https://ocr.captchaai.com/in.php',
{
key: 'YOUR_API_KEY',
method: 'userrecaptcha',
googlekey: 'SITE_KEY',
pageurl: 'https://example.com',
json: 1,
}
);
const taskId = resp.data.request;
CAPTCHA hình ảnh: Biểu mẫu so với JSON
Đối với CAPTCHA hình ảnh, định dạng quan trọng hơn:
Biểu mẫu có tệp tải lên (Nhiều phần)
# File upload — form-encoded with multipart
resp = requests.post("https://ocr.captchaai.com/in.php",
data={
"key": "YOUR_API_KEY",
"method": "post",
"json": 1,
},
files={
"file": open("captcha.png", "rb"),
},
)
JSON với Base64
import base64
# Base64 in JSON body
with open("captcha.png", "rb") as f:
body = base64.b64encode(f.read()).decode()
resp = requests.post("https://ocr.captchaai.com/in.php", json={
"key": "YOUR_API_KEY",
"method": "base64",
"body": body,
"json": 1,
})
Biểu mẫu với Base64
# Base64 in form data
resp = requests.post("https://ocr.captchaai.com/in.php", data={
"key": "YOUR_API_KEY",
"method": "base64",
"body": body,
"json": 1,
})
Khi nào nên sử dụng cái nào
| Kịch bản | Được đề xuất | tại sao |
|---|---|---|
| Kịch bản đơn giản | Được mã hóa biểu mẫu | Đơn giản hơn, ít phụ thuộc hơn |
| Tích hợp API REST | JSON | Phù hợp với các mẫu API điển hình |
| Tải lên tệp | Biểu mẫu nhiều phần | Tải lên nhị phân trực tiếp |
| Hình ảnh base64 lớn | Được mã hóa biểu mẫu | Xử lý tốt hơn tải trọng lớn |
| TypeScript/modern JS | JSON | Hỗ trợ đối tượng gốc |
| Tích hợp hệ thống kế thừa | Được mã hóa biểu mẫu | Khả năng tương thích phổ quát |
| Di chuyển từ 2Captcha | Được mã hóa biểu mẫu | Định dạng tương tự như 2Captcha |
Những lỗi thường gặp
| sai lầm | vấn đề | sửa chữa |
|---|---|---|
Sử dụng json={} nhưng không có json: 1 trong dữ liệu |
Phản hồi là văn bản thuần túy | Bao gồm "json": 1 trong dữ liệu |
Trộn data= và json= trong các yêu cầu Python |
Yêu cầu không đúng định dạng | Sử dụng cái này hay cái kia |
| Quên tiêu đề Loại nội dung | Máy chủ không thể phân tích nội dung | Hãy để thư viện HTTP của bạn tự động thiết lập nó |
| Gửi nội dung JSON đến điểm cuối thăm dò ý kiến | Cuộc thăm dò sử dụng thông số GET | Luôn sử dụng GET với các thông số truy vấn cho /res.php |
Câu hỏi thường gặp
Định dạng có ảnh hưởng đến tốc độ hoặc độ chính xác của việc giải quyết không?
Không. Cả hai định dạng đều tạo ra kết quả giống nhau. Máy chủ xử lý chúng theo cùng một cách.
Tôi có thể trộn các định dạng trong cùng một dự án không?
Vâng. Bạn có thể gửi bằng JSON và thăm dò ý kiến với các thông số truy vấn (đó là cách hoạt động của cuộc thăm dò ý kiến). Mỗi yêu cầu là độc lập.
API tương thích với 2Captcha sử dụng định dạng nào?
API 2Captcha ban đầu sử dụng mã hóa biểu mẫu. CaptchaAI bổ sung thêm tính năng hỗ trợ JSON. Nếu bạn đang di chuyển từ 2Captcha, hãy sử dụng mã hóa biểu mẫu.
Hướng dẫn liên quan
Chọn định dạng ưa thích của bạn —thử API CaptchaAIHôm nay.