الشروحات المعمقة

CaptchaAI JSON API مقابل Form API: التنسيق الذي يجب استخدامه

يقبل 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اليوم.

التعليقات غير مفعّلة لهذا المقال.