الدروس التطبيقية

تصحيح أخطاء مكالمات CAPTCHA API باستخدام Charles Proxy

عندما يعرض تكامل CAPTCHA أخطاء غير متوقعة، فإن فحص حركة مرور HTTP الأولية يكشف ما يتم إرساله واستلامه بالفعل. يقع Charles Proxy بين الكود الخاص بك وCaptchaAI، مما يتيح لك رؤية كل طلب واستجابة وتفاصيل التوقيت.


الإعداد

1. قم بتثبيت وكيل تشارلز

تحميل منcharlesproxy.com. متوفر على أنظمة التشغيل Windows، وmacOS، وLinux.

2. تمكين وكيل SSL

يستخدم CaptchaAI HTTPS. لفحص حركة المرور المشفرة:

  1. الوكيلإعدادات وكيل SSLإضافة
  2. المضيف: ocr.captchaai.com، المنفذ: 443
  3. ** مساعدة ** -> SSL Proxying -> تثبيت شهادة Charles Root
  4. ثق بالشهادة الموجودة في مخزن شهادات نظام التشغيل لديك

3. قم بتكوين التعليمات البرمجية الخاصة بك لاستخدام Charles

يعمل تشارلز على localhost:8888 بشكل افتراضي.

بايثون:

import requests

proxies = {
    "http": "http://localhost:8888",
    "https": "http://localhost:8888",
}

# Disable SSL verification for Charles (development only)
resp = requests.post(
    "https://ocr.captchaai.com/in.php",
    data={"key": "YOUR_API_KEY", "method": "userrecaptcha", "json": "1"},
    proxies=proxies,
    verify=False,
)

Node.js:

const axios = require('axios');
const HttpsProxyAgent = require('https-proxy-agent');

const agent = new HttpsProxyAgent('http://localhost:8888');

const resp = await axios.post('https://ocr.captchaai.com/in.php', null, {
  params: { key: 'YOUR_API_KEY', method: 'userrecaptcha', json: 1 },
  httpsAgent: agent,
});

ما للتفتيش

إرسال الطلب (POST /in.php)

في تشارلز، انقر فوق الطلب إلى /in.php. تحقق:

علامة التبويب ما للتحقق
الطلب †' الرؤوس نوع المحتوى صحيح
الطلب †' الجسم جميع المعلمات المطلوبة موجودة
** الرد ** † الجسم {"status":1,"request":"TASK_ID"} على النجاح
التوقيت مدة الطلب (يجب أن تكون أقل من 1 ثانية)

المشاكل الشائعة المرئية في تشارلز:

  • معلمة method مفقودة †' ERROR_BAD_PARAMETERS
  • نوع محتوى خاطئ -> لم يتم تحليل المعلمات
  • googlekey فارغ †' ERROR_WRONG_GOOGLEKEY
  • نص JSON مشوه → استخدم بيانات النموذج، وليس نص JSON

طلب الاستطلاع (احصل على /res.php)

التحقق من طلبات الاستطلاع:

  • المعلمات: key، action=get، id=TASK_ID
  • الاستجابة: CAPCHA_NOT_READY (استمر في الاقتراع) أو {"status":1,"request":"TOKEN"}
  • التوقيت: كل استطلاع يليه فترة نومك

تصحيح المشكلات الشائعة

المشكلة: ERROR_WRONG_GOOGLEKEY

في تشارلز، انظر إلى نص طلب الإرسال. ابحث عن الحقل googlekey:

# What Charles shows:
key=YOUR_API_KEY&method=userrecaptcha&googlekey=&pageurl=https://example.com&json=1
                                      ^^^^^^^^ empty!

إصلاح: فشل استخراج مفتاح الموقع في المنبع. تحقق من رمز الاستخراج الخاص بك.

المشكلة: تم رفض الرمز المميز من قبل الموقع المستهدف

قارن بين ما أعاده CaptchaAI وما تحقنه:

  1. في تشارلز، ابحث عن استجابة /res.php باستخدام status: 1
  2. انسخ الرمز المميز الكامل من حقل request
  3. ابحث عن الطلب اللاحق إلى الموقع المستهدف
  4. تحقق من وجود الرمز المميز في نص النموذج كـ g-recaptcha-response

المشكلة: انتهاء مهلة الطلبات

استخدم عرض Charles Sequence لمعرفة التوقيت:

POST /in.php     → 234ms ✓
GET  /res.php    → 189ms (CAPCHA_NOT_READY)
GET  /res.php    → 201ms (CAPCHA_NOT_READY)
GET  /res.php    → 195ms (CAPCHA_NOT_READY)
... 23 more ...
GET  /res.php    → 188ms (CAPCHA_NOT_READY)  ← never resolves

إذا لم يتم حل المشكلة مطلقًا: تحقق مما إذا كان مفتاح الموقع وعنوان URL للصفحة صحيحين.


ميزات تشارلز لتصحيح أخطاء اختبار CAPTCHA

كرر الطلب

انقر بزر الماوس الأيمن فوق أي طلب †’ كرر لإعادة إرساله. مفيد لاختبار طلبات الاستطلاع دون إعادة تشغيل البرنامج النصي بأكمله.

نقاط التوقف

قم بتعيين نقطة توقف على /in.php لفحص الطلب وتعديله قبل إرساله:

  1. الوكيلإعدادات نقطة التوقفإضافة
  2. المضيف: ocr.captchaai.com، المسار: /in.php
  3. تحقق الطلب
  4. الآن يتوقف الكود الخاص بك مؤقتًا قبل الإرسال، ويمكنك تعديل المعلمات

الخريطة المحلية

استبدل استجابات واجهة برمجة التطبيقات (API) بالملفات المحلية للاختبار:

  1. الأدواتالخريطة المحليةإضافة
  2. قم بتعيين https://ocr.captchaai.com/res.php إلى ملف JSON محلي
  3. إنشاء mock_response.json:
{"status": 1, "request": "mock_token_for_testing"}

يتيح لك ذلك اختبار رمز حقن الرمز المميز الخاص بك دون استخدام أرصدة واجهة برمجة التطبيقات (API).

خنق

محاكاة الاتصالات البطيئة:

  1. الوكيل -> إعدادات الخانق -> تمكين
  2. اضبط الإعداد المسبق على سرعات 3G أو مستوى EDGE
  3. اختبر ما إذا كان الكود الخاص بك يتعامل مع الاستجابات البطيئة والمهلات بشكل صحيح

بدائل لتشارلز

أداة منصة HTTPS التكلفة
وكيل تشارلز Win/Mac/Linux يتطلب تثبيت الشهادة مدفوعة (تجربة مجانية)
mitmproxy Win/Mac/Linux يتطلب تثبيت الشهادة مجاني
عازف الكمان ويندوز فك تشفير HTTPS المدمج مجاني
الوكيل ماك إعداد HTTPS بنقرة واحدة فريميوم

mitmproxy الإعداد السريع

# Install
pip install mitmproxy

# Run
mitmproxy --listen-port 8080

# Configure Python
proxies = {"https": "http://localhost:8080"}

استكشاف الأخطاء وإصلاحها

مشكلة السبب إصلاح
أخطاء SSL في التعليمات البرمجية شهادة تشارلز غير موثوقة تثبيت شهادة الجذر تشارلز. استخدم verify=False للتطوير
لا توجد طلبات مرئية الكود لا يستخدم الوكيل قم بتعيين الوكيل في تكوين طلبات/axios
استجابة HTTPS مشوشة لم يتم تمكين وكيل SSL أضف ocr.captchaai.com إلى إعدادات وكيل SSL
تشارلز يبطئ الطلبات تم تمكين نقاط التوقف قم بتعطيل نقاط التوقف عند عدم الحاجة إليها

الأسئلة الشائعة

هل يجب أن أستخدم تشارلز في الإنتاج؟

لا، تشارلز هو أداة للتطوير والتصحيح. استخدم التسجيل والمراقبة المنظمة لإمكانية ملاحظة الإنتاج.

هل يؤثر التوجيه عبر Charles على حل اختبار CAPTCHA؟

لا، CaptchaAI لا يرى تشارلز كوكيل - فطلباتك تمر بشفافية.


تصحيح وتحسين تكامل CaptchaAI

احصل على مفتاح API الخاص بك علىcaptchaai.com.


أدلة ذات صلة

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