عندما يفشل حل اختبار CAPTCHA ولا تعرض سجلاتك تفاصيل كافية، فإن اعتراض حركة مرور HTTP الفعلية يكشف ما يحدث. يلتقط Fiddler كل طلب واستجابة بين التعليمات البرمجية الخاصة بك وواجهة برمجة التطبيقات CaptchaAI، مما يتيح لك رؤية الحمولات الصافية والعناوين والتوقيت الدقيق.
متى يتم استخدام Fiddler لتصحيح الأخطاء
| السيناريو | ما يكشفه عازف الكمان |
|---|---|
| تُرجع واجهة برمجة التطبيقات (API) الأخطاء ولكن سجلات التعليمات البرمجية الخاصة بك متفرقة | نص الطلب الكامل والعناوين والاستجابة |
| يبدو أن حل الطلبات معطلاً | ما إذا كانت الطلبات تصل إلى الخادم أو تنتهي مهلتها |
| يبدو الرمز غير صالح عند حقنه | محتوى الرمز المميز الدقيق وأي مشكلات في التشفير |
| الفشل المتعلق بالوكيل | ما إذا كانت الطلبات يتم توجيهها عبر الوكيل المتوقع |
| قضايا الحد الأقصى للسعر | توقيت الطلب وأنماط الاستجابة 429 |
إعداد Fiddler لحركة مرور HTTPS
الخطوة 1: تثبيت وتكوين فك تشفير HTTPS
يعمل Fiddler كوكيل محلي يعترض حركة مرور HTTPS. تحتاج إلى تمكين فك تشفير HTTPS لرؤية حمولات CaptchaAI API:
عازف الكمان في كل مكان:
- افتح الإعدادات - HTTPS
- تمكين "التقاط حركة مرور HTTPS"
- قم بتثبيت شهادة جذر Fiddler عندما يُطلب منك ذلك
- ثق بالشهادة الموجودة في مخزن شهادات نظام التشغيل لديك
** عازف الكمان كلاسيك (ويندوز): **
- الأدوات - الخيارات - HTTPS
- حدد "فك تشفير حركة مرور HTTPS"
- انقر فوق "الإجراءات" ← "شهادة الجذر الموثوقة"
الخطوة 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 فقط في جلسة مزدحمة.
مرشحات عازف الكمان في كل مكان
- انقر فوق علامة التبويب المرشحات
- أضف قاعدة: المضيف ->
contains->ocr.captchaai.com - قم بتطبيق الفلتر
مرشحات عازف الكمان الكلاسيكية
- انقر فوق علامة التبويب المرشحات
- تحقق من "استخدام المرشحات"
- ضمن "المضيفون"، حدد "إظهار المضيفين التاليين فقط"
- أدخل:
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 رمز الحالة | الطلبات كثيرة جدًا - مما يؤدي إلى إبطاء عملية الاقتراع |
استخدام نقاط التوقف
تقوم نقاط التوقف بإيقاف الطلبات مؤقتًا قبل إرسالها، مما يسمح لك بتعديلها:
تحديد نقطة توقف
عازف الكمان في كل مكان:
- القواعد ← إضافة قاعدة
- المطابقة: يحتوي عنوان URL على
ocr.captchaai.com/in.php - الإجراء: "إيقاف مؤقت قبل الإرسال"
عازف الكمان كلاسيك:
- القواعد † نقاط التوقف التلقائية † قبل الطلبات
- أو اكتب
bpu ocr.captchaai.comفي شريط QuickExec
ماذا تفعل عند نقطة التوقف
عند إيقاف الطلب مؤقتًا:
- فحص نص الطلب - التحقق من صحة جميع المعلمات
- تحرير المعلمات - قم بتغيير
methodأوgooglekeyأوpageurlلاختبار قيم مختلفة - استئناف - انقر فوق "تشغيل حتى الاكتمال" لإرسال الطلب المعدل
- التحقق من الاستجابة - معرفة ما إذا كان التغيير الذي أجريته قد أدى إلى حل المشكلة
يعد هذا مفيدًا لاختبار ما إذا كانت قيمة المعلمة تسبب حالات فشل دون تغيير التعليمات البرمجية.
إعادة تشغيل الطلبات الفاشلة
عندما يفشل الطلب، يمكنك إعادة تشغيله من Fiddler:
- انقر بزر الماوس الأيمن فوق الجلسة الفاشلة
- حدد إعادة التشغيل → طلبات إعادة الإصدار
- يتم إرسال نفس الطلب مرة أخرى برؤوس ونص متطابقين
للإعادة مع التعديلات:
- انقر بزر الماوس الأيمن †’ تحرير في الملحن
- تعديل المعلمات
- انقر تنفيذ
يتيح لك هذا اختبار الإصلاحات دون إعادة تشغيل التطبيق الخاص بك.
تأليف طلبات الاختبار
استخدم 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:
- حدد الجلسات ذات الصلة في Fiddler
- ملف ← تصدير الجلسات ← الجلسات المحددة
- اختر تنسيق HTTPArchive (.har)
- ** قم بإزالة مفتاح واجهة برمجة التطبيقات (API) الخاص بك ** من الملف الذي تم تصديره قبل المشاركة
Find and replace your actual API key with "REDACTED" in the .har file
استكشاف الأخطاء وإصلاحها
| المشكلة | السبب | الإجراء |
|---|---|---|
| يُنشأ الرمز المميز لكن الجهة المستهدفة ترفضه | مفتاح الموقع أو الصفحة أو سياق الجلسة لا يتطابق | التقط المعلمات من جديد وأعد استخدام الرمز داخل جلسة HTTP أو المتصفح نفسها |
| تنتهي عملية الاستطلاع بمهلة | الفاصل الزمني أو وقت الانتظار أو معالجة الأخطاء صارمة أكثر من اللازم | استطلع كل 5 إلى 10 ثوانٍ وافصل بين انتهاء المهلة والأخطاء الفعلية وسجّل السبب |
| ينجح المثال محليًا لكنه يفشل داخل سير العمل | رد النداء أو حقل النموذج أو حقن الرمز مفقود في السلسلة الفعلية | تحقق من المسار الكامل بين أداة الحل والطلب النهائي إلى الموقع المستهدف |
الخطوات التالية
- البدء السريع مع CaptchaAI: حلّ أول كابتشا في 5 دقائق
- كيفية حلّ reCAPTCHA v2 عبر الـ API: دليل خطوة بخطوة
- كيفية حل Cloudflare Turnstile باستخدام واجهة API
- كيفية حل GeeTest v3 باستخدام API