يقبل CaptchaAI الطلبات بتنسيقات ترميز النماذج وتنسيقات JSON. يعمل كلاهما بشكل متماثل — اختر بناءً على لغتك وتفضيلاتك.
المقارنة جنبا إلى جنب
مرمز بالنموذج (افتراضي)
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,
})
نوع المحتوى: 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,
})
نوع المحتوى: application/json
الاختلافات الرئيسية
| عامل | مشفر بالنموذج | JSON |
|---|---|---|
| نوع المحتوى | application/x-www-form-urlencoded |
application/json |
| بنية البيانات | أزواج قيمة المفتاح المسطحة | الكائنات المتداخلة ممكنة |
| البيانات الثنائية | استخدم الأجزاء المتعددة لتحميل الملف | ترميز Base64 في مجال الجسم |
| دعم المصفوفة | محدودة | أصلي |
| الكلمة الأساسية بايثون | data={} |
json={} |
| Node.js | URLSearchParams |
JSON.stringify() |
| سهولة القراءة | بسيطة للمعاملات المسطحة | أفضل للبيانات المعقدة |
| التوافق | يعمل في كل مكان | يعمل في كل مكان |
تنسيق الاستجابة
أضف json=1 للحصول على استجابات JSON بغض النظر عن تنسيق الطلب:
# 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"}
استخدم دائمًا json=1 لتسهيل التحليل.
أمثلة بايثون
مشفر بالنموذج
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,
})
JSON body
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,
})
أمثلة على Node.js
مشفر بالنموذج
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;
JSON body
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: النموذج مقابل JSON
بالنسبة إلى اختبارات CAPTCHA للصور، يكون التنسيق أكثر أهمية:
نموذج مع تحميل ملف (متعدد الأجزاء)
# 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 مع 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,
})
النموذج مع 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,
})
متى تستخدم أي
| السيناريو | موصى به | لماذا |
|---|---|---|
| مخطوطات بسيطة | مشفرة بالنموذج | أبسط، وعدد أقل من التبعيات |
| تكامل REST API | JSON | يطابق أنماط واجهة برمجة التطبيقات النموذجية |
| تحميل الملفات | شكل متعدد الأجزاء | تحميل ثنائي مباشر |
| صور Base64 كبيرة | مشفرة بالنموذج | التعامل بشكل أفضل مع الحمولات الكبيرة |
| تايب سكريبت/modern JS | JSON | دعم الكائن الأصلي |
| تكامل النظام القديم | مشفرة بالنموذج | التوافق العالمي |
| الترحيل من 2Captcha | مشفرة بالنموذج | نفس تنسيق 2Captcha |
الأخطاء الشائعة
| خطأ | مشكلة | إصلاح |
|---|---|---|
استخدام json={} ولكن لا يوجد json: 1 في البيانات |
الرد هو نص عادي | قم بتضمين "json": 1 في البيانات |
خلط data= وjson= في طلبات بايثون |
الطلب غير صحيح | استخدام واحد أو آخر |
| نسيان رأس نوع المحتوى | لا يمكن للخادم تحليل النص | اسمح لمكتبة HTTP الخاصة بك بتعيينها تلقائيًا |
| إرسال نص JSON إلى نقطة نهاية الاستقصاء | يستخدم الاستطلاع معلمات GET | استخدم دائمًا GET مع معلمات الاستعلام لـ /res.php |
الأسئلة الشائعة
هل يؤثر التنسيق على سرعة الحل أو دقته؟
لا، كلا التنسيقين ينتجان نتائج متطابقة. يعالجهم الخادم بنفس الطريقة.
هل يمكنني مزج التنسيقات في نفس المشروع؟
نعم. يمكنك الإرسال باستخدام JSON والاستقصاء باستخدام معلمات الاستعلام (وهي الطريقة التي يعمل بها الاستقصاء دائمًا). كل طلب مستقل.
ما التنسيق الذي تستخدمه واجهة برمجة التطبيقات المتوافقة مع 2Captcha؟
تستخدم واجهة برمجة تطبيقات 2Captcha الأصلية ترميز النموذج. يضيف CaptchaAI دعم JSON في الأعلى. إذا كنت تقوم بالترحيل من 2Captcha، فالتزم بالترميز بالنموذج.
أدلة ذات صلة
اختر التنسيق المفضل لديك —حاول CaptchaAI APIاليوم.