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

استخدام Fiddler لفحص حركة مرور CaptchaAI API

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

متى يتم استخدام Fiddler لتصحيح الأخطاء

السيناريو ما يكشفه عازف الكمان
تُرجع واجهة برمجة التطبيقات (API) الأخطاء ولكن سجلات التعليمات البرمجية الخاصة بك متفرقة نص الطلب الكامل والعناوين والاستجابة
يبدو أن حل الطلبات معطلاً ما إذا كانت الطلبات تصل إلى الخادم أو تنتهي مهلتها
يبدو الرمز غير صالح عند حقنه محتوى الرمز المميز الدقيق وأي مشكلات في التشفير
الفشل المتعلق بالوكيل ما إذا كانت الطلبات يتم توجيهها عبر الوكيل المتوقع
قضايا الحد الأقصى للسعر توقيت الطلب وأنماط الاستجابة 429

إعداد Fiddler لحركة مرور HTTPS

الخطوة 1: تثبيت وتكوين فك تشفير HTTPS

يعمل Fiddler كوكيل محلي يعترض حركة مرور HTTPS. تحتاج إلى تمكين فك تشفير HTTPS لرؤية حمولات CaptchaAI API:

عازف الكمان في كل مكان:

  1. افتح الإعدادات - HTTPS
  2. تمكين "التقاط حركة مرور HTTPS"
  3. قم بتثبيت شهادة جذر Fiddler عندما يُطلب منك ذلك
  4. ثق بالشهادة الموجودة في مخزن شهادات نظام التشغيل لديك

** عازف الكمان كلاسيك (ويندوز): **

  1. الأدوات - الخيارات - HTTPS
  2. حدد "فك تشفير حركة مرور HTTPS"
  3. انقر فوق "الإجراءات" ← "شهادة الجذر الموثوقة"

الخطوة 2: قم بتكوين التعليمات البرمجية الخاصة بك لاستخدام وكيل Fiddler

يستمع Fiddler إلى 127.0.0.1:8866 (Fiddler Everywhere) أو 127.0.0.1:8888 (Fiddler Classic).

بايثون (الطلبات):

import requests

proxies = {
    "http": "http://127.0.0.1:8866",
    "https": "http://127.0.0.1:8866",
}

# Submit CAPTCHA task through Fiddler
response = requests.post(
    "https://ocr.captchaai.com/in.php",
    data={
        "key": "YOUR_API_KEY",
        "method": "userrecaptcha",
        "googlekey": "SITE_KEY",
        "pageurl": "https://example.com",
        "json": 1,
    },
    proxies=proxies,
    verify=False,  # Required for Fiddler's self-signed cert
)
print(response.json())

JavaScript (Node.js مع أكسيوس):

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

const agent = new HttpsProxyAgent("http://127.0.0.1:8866");

async function submitTask() {
  const response = await axios.post(
    "https://ocr.captchaai.com/in.php",
    new URLSearchParams({
      key: "YOUR_API_KEY",
      method: "userrecaptcha",
      googlekey: "SITE_KEY",
      pageurl: "https://example.com",
      json: 1,
    }),
    {
      httpsAgent: agent,
      proxy: false, // Disable axios default proxy handling
    }
  );
  console.log(response.data);
}

submitTask();

ملاحظة: يقوم verify=False (Python) بتعطيل التحقق من طبقة المقابس الآمنة (SSL) لشهادة اعتراض Fiddler. استخدم هذا فقط أثناء تصحيح الأخطاء - قم بإزالته في الإنتاج.

تصفية حركة المرور CaptchaAI

أضف عوامل تصفية لرؤية طلبات CaptchaAI فقط في جلسة مزدحمة.

مرشحات عازف الكمان في كل مكان

  1. انقر فوق علامة التبويب المرشحات
  2. أضف قاعدة: المضيف -> contains -> ocr.captchaai.com
  3. قم بتطبيق الفلتر

مرشحات عازف الكمان الكلاسيكية

  1. انقر فوق علامة التبويب المرشحات
  2. تحقق من "استخدام المرشحات"
  3. ضمن "المضيفون"، حدد "إظهار المضيفين التاليين فقط"
  4. أدخل: ocr.captchaai.com

الآن تظهر طلبات CaptchaAI API فقط في قائمة الجلسات.

فحص الطلب والاستجابة

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

عند التقاط إرسال مهمة، قم بفحص هذه الحقول في Fiddler:

لوحة ما يجب التحقق منه
العناوين يجب أن يكون نوع المحتوى application/x-www-form-urlencoded
نص الطلب تحقق من صحة key وmethod وgooglekey/sitekey وpageurl
** هيئة الرد ** يجب أن يعود {"status":1,"request":"TASK_ID"} عند النجاح
رمز الرد 200 = موافق، 403 = المشكلة الرئيسية، 429 = السعر محدود

طلب الاستطلاع (res.php)

عند التصويت على النتائج:

لوحة ما يجب التحقق منه
نص الطلب key، action=get، id=TASK_ID، json=1
** هيئة الرد ** CAPCHA_NOT_READY أثناء المعالجة، {"status":1,"request":"TOKEN"} عند النجاح
التوقيت تحقق من الفواصل الزمنية بين الاستطلاعات - يجب أن تكون أكثر من 5 ثوانٍ

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

ما تراه معنى
نص الطلب فارغ googlekey فشل استخراج مفتاح الموقع في المنبع
الرد: {"status":0,"request":"ERROR_WRONG_USER_KEY"} مفتاح API غير صالح
الرد: {"status":0,"request":"ERROR_ZERO_BALANCE"} الحساب ليس لديه أموال
الرد: {"status":0,"request":"ERROR_NO_SLOT_AVAILABLE"} الخادم مشغول – أعد المحاولة
لا يوجد رد (مهلة) Network/proxy يحظر الاتصال
429 رمز الحالة الطلبات كثيرة جدًا - مما يؤدي إلى إبطاء عملية الاقتراع

استخدام نقاط التوقف

تقوم نقاط التوقف بإيقاف الطلبات مؤقتًا قبل إرسالها، مما يسمح لك بتعديلها:

تحديد نقطة توقف

عازف الكمان في كل مكان:

  1. القواعد ← إضافة قاعدة
  2. المطابقة: يحتوي عنوان URL على ocr.captchaai.com/in.php
  3. الإجراء: "إيقاف مؤقت قبل الإرسال"

عازف الكمان كلاسيك:

  1. القواعد † نقاط التوقف التلقائية † قبل الطلبات
  2. أو اكتب bpu ocr.captchaai.com في شريط QuickExec

ماذا تفعل عند نقطة التوقف

عند إيقاف الطلب مؤقتًا:

  1. فحص نص الطلب - التحقق من صحة جميع المعلمات
  2. تحرير المعلمات - قم بتغيير method أو googlekey أو pageurl لاختبار قيم مختلفة
  3. استئناف - انقر فوق "تشغيل حتى الاكتمال" لإرسال الطلب المعدل
  4. التحقق من الاستجابة - معرفة ما إذا كان التغيير الذي أجريته قد أدى إلى حل المشكلة

يعد هذا مفيدًا لاختبار ما إذا كانت قيمة المعلمة تسبب حالات فشل دون تغيير التعليمات البرمجية.

إعادة تشغيل الطلبات الفاشلة

عندما يفشل الطلب، يمكنك إعادة تشغيله من Fiddler:

  1. انقر بزر الماوس الأيمن فوق الجلسة الفاشلة
  2. حدد إعادة التشغيلطلبات إعادة الإصدار
  3. يتم إرسال نفس الطلب مرة أخرى برؤوس ونص متطابقين

للإعادة مع التعديلات:

  1. انقر بزر الماوس الأيمن †’ تحرير في الملحن
  2. تعديل المعلمات
  3. انقر تنفيذ

يتيح لك هذا اختبار الإصلاحات دون إعادة تشغيل التطبيق الخاص بك.

تأليف طلبات الاختبار

استخدم Fiddler's Composer لإنشاء طلبات CaptchaAI من البداية:

** تقديم المهمة: **

POST https://ocr.captchaai.com/in.php
Content-Type: application/x-www-form-urlencoded

key=YOUR_API_KEY&method=userrecaptcha&googlekey=SITE_KEY&pageurl=https://example.com&json=1

نتائج التصويت:

GET https://ocr.captchaai.com/res.php?key=YOUR_API_KEY&action=get&id=TASK_ID&json=1

يعد هذا أسرع من كتابة التعليمات البرمجية عندما تريد فقط التحقق من عمل واجهة برمجة التطبيقات.

تحليل التوقيت

يعرض عرض الجدول الزمني لـ Fiddler مدة الطلب:

متري قيمة صحية مؤشر المشكلة
بحث DNS <50 مللي ثانية > 500 مللي ثانية = مشكلة DNS
اتصال TCP <100 مللي ثانية > 1000 مللي ثانية = مشكلة في الشبكة
مصافحة TLS <200 مللي ثانية > 1000 مللي ثانية = إصدار الشهادة
استجابة الخادم (in.php) <500 مللي ثانية > 2000 مللي ثانية = ازدحام الخادم
استجابة الخادم (res.php) <200 مللي ثانية > 1000 مللي ثانية = غير عادي - حالة التحقق

تصدير جلسات الدعم

إذا كنت بحاجة إلى مشاركة بيانات تصحيح الأخطاء مع دعم CaptchaAI:

  1. حدد الجلسات ذات الصلة في Fiddler
  2. ملف ← تصدير الجلسات ← الجلسات المحددة
  3. اختر تنسيق HTTPArchive (.har)
  4. ** قم بإزالة مفتاح واجهة برمجة التطبيقات (API) الخاص بك ** من الملف الذي تم تصديره قبل المشاركة
Find and replace your actual API key with "REDACTED" in the .har file

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

المشكلة السبب الإجراء
يُنشأ الرمز المميز لكن الجهة المستهدفة ترفضه مفتاح الموقع أو الصفحة أو سياق الجلسة لا يتطابق التقط المعلمات من جديد وأعد استخدام الرمز داخل جلسة HTTP أو المتصفح نفسها
تنتهي عملية الاستطلاع بمهلة الفاصل الزمني أو وقت الانتظار أو معالجة الأخطاء صارمة أكثر من اللازم استطلع كل 5 إلى 10 ثوانٍ وافصل بين انتهاء المهلة والأخطاء الفعلية وسجّل السبب
ينجح المثال محليًا لكنه يفشل داخل سير العمل رد النداء أو حقل النموذج أو حقن الرمز مفقود في السلسلة الفعلية تحقق من المسار الكامل بين أداة الحل والطلب النهائي إلى الموقع المستهدف

الخطوات التالية

أدلة ذات صلة

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