Kodunuz doğru görünüyor ama CaptchaAI API'si beklenmedik bir hata mı döndürüyor? Yanıtı çoğu zaman uygulama günlüklerinizde değil, kodunuzla API arasında gidip gelen ham HTTP trafiğinde bulursunuz. Fiddler tam da burada devreye girer: yerel bir proxy gibi çalışarak her isteği ve yanıtı yakalar; böylece tam yükleri, başlıkları ve zamanlamayı olduğu gibi görürsünüz.
Bu rehber dört aşamada ilerler — trafiği yakalama, CaptchaAI isteklerine indirgeme, istek ve yanıtı okuma, ardından parametreleri değiştirip başarısız çağrıları yeniden gönderme. Tutorial'da geçen tüm kod örnekleri olduğu gibi kopyalanabilir.
Fiddler hangi sorunlarda işinize yarar?
Fiddler, kod tarafında göremediğiniz şeyi görünür kılar. En sık şu durumlarda başvurursunuz:
- API hata döndürüyor ama kod günlükleriniz yetersiz — isteğin tam gövdesini, başlıklarını ve yanıtını gösterir.
- Çözüm istekleri askıda kalıyor gibi — isteğin sunucuya ulaşıp ulaşmadığını ya da zaman aşımına uğradığını ayırt edersiniz.
- Enjekte edilen token geçersiz görünüyor — token'ın tam içeriğini ve olası kodlama sorunlarını okursunuz.
- Proxy kaynaklı hatalar — isteğin beklenen proxy üzerinden gidip gitmediğini doğrularsınız.
- Hız sınırı sorunları — istek zamanlamasını ve 429 yanıt düzenini görürsünüz.
Somut bir örnek: bir e-ticaret ödeme akışının QA testinde reCAPTCHA v2 çözümü aniden ERROR_WRONG_USER_KEY döndürmeye başladıysa, sorunun kodda mı yoksa gönderilen istekte mi olduğunu ancak trafiği açıp key alanını kendi gözünüzle görerek anlarsınız. Fiddler bu tahmin oyununu ortadan kaldırır.
Adım 1: HTTPS şifre çözmeyi açın
Fiddler, HTTPS trafiğini araya girerek yakalayan yerel bir proxy'dir. CaptchaAI API yüklerini görebilmek için önce HTTPS şifre çözmeyi etkinleştirmeniz gerekir.
Fiddler Everywhere kullanıyorsanız Settings → HTTPS bölümünü açın, "Capture HTTPS traffic" seçeneğini etkinleştirin, istendiğinde Fiddler kök sertifikasını yükleyin ve sertifikaya işletim sisteminizin sertifika deposunda güvenin.
Fiddler Classic (Windows) tarafında ise Tools → Options → HTTPS yolunu açın, "Decrypt HTTPS traffic" seçeneğini işaretleyin ve "Actions" → "Trust Root Certificate" adımını tıklayın.
Adım 2: Kodunuzu Fiddler proxy'sine yönlendirin
Fiddler, 127.0.0.1:8866 (Fiddler Everywhere) veya 127.0.0.1:8888 (Fiddler Classic) adresinde dinler. İsteklerinizi bu proxy üzerinden geçirin. Python tarafında requests ile:
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())
Node.js tarafında axios ile aynı yönlendirme şöyle yapılır:
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();
Not:
verify=False(Python), Fiddler'ın araya giren sertifikası için SSL doğrulamasını devre dışı bırakır. Bunu yalnızca hata ayıklama sırasında kullanın; üretimde kaldırın.
Adım 3: Yalnızca CaptchaAI trafiğini süzün
Yoğun bir oturumda onlarca istek arasında kaybolmamak için yalnızca CaptchaAI isteklerini gösteren bir filtre ekleyin.
Fiddler Everywhere'de Filters sekmesini açın, bir kural ekleyin (Host → contains → ocr.captchaai.com) ve filtreyi uygulayın.
Fiddler Classic'te yine Filters sekmesini açın, "Use Filters" seçeneğini işaretleyin, "Hosts" altında "Show only the following Hosts" seçin ve ocr.captchaai.com girin. Artık oturum listesinde yalnızca CaptchaAI API istekleri görünür.
Yakalanan isteği ve yanıtı okuma
Bir görev gönderimini (in.php) yakaladığınızda Fiddler'da şu alanlara bakın:
| Panel | Neyi kontrol etmeli |
|---|---|
| Headers | Content-Type application/x-www-form-urlencoded olmalı |
| İstek gövdesi | key, method, googlekey/sitekey ve pageurl değerlerinin doğru olduğunu doğrulayın |
| Yanıt gövdesi | Başarılıysa {"status":1,"request":"TASK_ID"} dönmeli |
| Yanıt kodu | 200 = tamam, 403 = anahtar sorunu, 429 = hız sınırı |
Sonucu periyodik olarak sorgulayan istekte (res.php) ise key, action=get, id=TASK_ID ve json=1 alanlarının doğru olduğunu doğrulayın. Yanıt gövdesi işlenme sürerken CAPCHA_NOT_READY, çözüm hazır olduğunda {"status":1,"request":"TOKEN"} döndürür. Sorgular arasındaki aralığı da kontrol edin — 5 saniye ve üzerinde olmalıdır.
Fiddler'da sık karşılaşılan yanıtlar
Yakaladığınız yanıtın ne anlama geldiğini hızlıca çözmek için:
- İstek gövdesinde
googlekeyboşsa, sitekey çıkarımı daha önceki adımda başarısız olmuştur. {"status":0,"request":"ERROR_WRONG_USER_KEY"}→ API anahtarı geçersiz.{"status":0,"request":"ERROR_ZERO_BALANCE"}→ hesap bakiyesi yok.{"status":0,"request":"ERROR_NO_SLOT_AVAILABLE"}→ sunucu meşgul, yeniden deneyin.- Hiç yanıt yoksa (zaman aşımı) ağ ya da proxy bağlantıyı engelliyordur.
- 429 durum kodu, çok sık istek attığınız anlamına gelir; sorgulamayı yavaşlatın.
İstek sürelerini Timeline ile okuma
Fiddler'ın Timeline görünümü her isteğin ne kadar sürdüğünü gösterir. Bu, yavaşlığın kodunuzdan mı yoksa ağdan mı kaynaklandığını ayırmanıza yardımcı olur:
| Metrik | Sağlıklı değer | Sorun göstergesi |
|---|---|---|
| DNS araması | < 50ms | > 500ms = DNS sorunu |
| TCP bağlantısı | < 100ms | > 1000ms = ağ sorunu |
| TLS anlaşması | < 200ms | > 1000ms = sertifika sorunu |
| Sunucu yanıtı (in.php) | < 500ms | > 2000ms = sunucu yoğunluğu |
| Sunucu yanıtı (res.php) | < 200ms | > 1000ms = olağan dışı — durumu kontrol edin |
Parametreleri canlı değiştirme: kesme noktaları
Kesme noktaları (breakpoint), istekleri gönderilmeden önce duraklatır ve üzerlerinde değişiklik yapmanıza olanak tanır. Fiddler Everywhere'de Rules → Add Rule ile bir kural ekleyin, URL'nin ocr.captchaai.com/in.php içermesini eşleştirin ve eylemi "Pause before sending" yapın. Fiddler Classic'te Rules → Automatic Breakpoints → Before Requests yolunu kullanın ya da QuickExec çubuğuna bpu ocr.captchaai.com yazın.
Bir istek duraklatıldığında şu sırayı izleyin:
- İstek gövdesini inceleyin — tüm parametrelerin doğru olduğunu doğrulayın.
- Parametreleri düzenleyin — farklı değerleri denemek için
method,googlekeyveyapageurl'yi değiştirin. - Devam edin — değiştirilmiş isteği göndermek için "Run to Completion" tıklayın.
- Yanıtı kontrol edin — yaptığınız değişiklik sorunu çözdü mü bakın.
Bu yöntem, bir parametre değerinin hataya yol açıp açmadığını kodu hiç değiştirmeden test etmek için idealdir.
Başarısız isteği yeniden gönderme
Bir istek başarısız olduğunda onu doğrudan Fiddler'dan yeniden gönderebilirsiniz. Başarısız oturuma sağ tıklayıp Replay → Reissue Requests seçtiğinizde aynı istek, aynı başlıklar ve gövdeyle yeniden gönderilir.
Değişiklik yaparak yeniden göndermek isterseniz oturuma sağ tıklayın, Edit in Composer seçin, parametreleri değiştirin ve Execute tıklayın. Böylece uygulamanızı yeniden başlatmadan düzeltmeleri test edebilirsiniz.
Composer ile sıfırdan istek kurma
CaptchaAI isteklerini baştan oluşturmak için Fiddler'ın Composer aracını kullanın. Görev gönderimi için:
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
Sonucu sorgulamak için:
GET https://ocr.captchaai.com/res.php?key=YOUR_API_KEY&action=get&id=TASK_ID&json=1
Yalnızca API'nin çalışıp çalışmadığını doğrulamak istediğinizde bu, kod yazmaktan çok daha hızlıdır.
Oturumları destek için dışa aktarma
Hata ayıklama verisini CaptchaAI desteğiyle paylaşmanız gerekirse Fiddler'da ilgili oturumları seçin, File → Export Sessions → Selected Sessions yolunu izleyin ve HTTPArchive (.har) biçimini seçin. Paylaşmadan önce dışa aktardığınız dosyadan API anahtarınızı çıkarın:
Find and replace your actual API key with "REDACTED" in the .har file
.har dosyaları yalnızca API anahtarınızı değil, isteklerdeki diğer başlık ve gövde verilerini de taşır. Kişisel veya müşteriye ait veri içeren istekler varsa, KVKK yükümlülükleriniz açısından bu alanları da paylaşmadan önce temizleyin.
Sorun giderme
| Sorun | Sebep | Çözüm |
|---|---|---|
| Fiddler hiç trafik göstermiyor | Kod, Fiddler proxy'si üzerinden gitmiyor | Proxy'yi 127.0.0.1:8866 (Everywhere) veya 8888 (Classic) olarak ayarlayın |
| SSL sertifika hataları | Fiddler kök sertifikasına güvenilmiyor | Fiddler sertifikasını yeniden yükleyin; güvenilen köklere ekleyin |
| Fiddler bozuk yanıt gövdesi gösteriyor | Yanıt sıkıştırılmış | Araç çubuğundaki "Decode" düğmesini açın (ya da Rules → Remove All Encodings) |
| Kesme noktaları tetiklenmiyor | Filtre ya da kural uyuşmuyor | URL kalıbının ocr.captchaai.com ile tam eşleştiğini doğrulayın |
| Trafik görünüyor ama gövde boş | Content-Length uyuşmazlığı ya da akış (streaming) yanıtı | Oturuma tıklayıp tam yanıtın yüklenmesini bekleyin |
Sık sorulan sorular
Fiddler HTTPS trafiğini gösteriyor ama gövdeyi okuyamıyorum, neden?
Büyük olasılıkla iki nedenden biri geçerli: HTTPS şifre çözme kapalıdır ya da Fiddler kök sertifikasına güvenilmemiştir. Adım 1'e dönüp şifre çözmeyi açın ve sertifikayı işletim sistemi deposuna ekleyin. Yanıt hâlâ karışık görünüyorsa muhtemelen sıkıştırılmıştır; araç çubuğundaki "Decode" düğmesini açın.
res.php sürekli CAPCHA_NOT_READY dönüyorsa Fiddler'da neye bakmalıyım?
Bu bir hata değil, çözümün henüz hazır olmadığı anlamına gelir. Fiddler'da sorgular arasındaki zamanlamayı kontrol edin — aralık 5 saniyeden kısaysa gereğinden sık sorguluyorsunuz demektir. Ayrıca ilk in.php yanıtında geçerli bir TASK_ID döndüğünü ve sorgu isteğinde bu kimliğin doğru gönderildiğini doğrulayın.
Fiddler, CAPTCHA çözüm süresini yavaşlatır mı?
Kayda değer ölçüde değil. Proxy sıçraması istek başına yaklaşık 1–5 ms gecikme ekler; bu, 10–60 saniyelik çözüm süreleri yanında ihmal edilebilir düzeydedir. Yalnızca şunu unutmayın: Fiddler'ın zaman damgaları, kodunuzun isteği gönderdiği anı değil, Fiddler'ın veriyi aldığı anı yansıtır.
API trafiğini Fiddler yerine tarayıcının Network sekmesinden inceleyemez miyim?
Tarayıcı içinde çalışan CAPTCHA widget'ları için tarayıcının Network sekmesi iş görür. Ancak sunucu tarafında çalışan bir betik (Python, Node.js) doğrudan ocr.captchaai.com ile konuşuyorsa bu trafik tarayıcıdan geçmez; onu yalnızca Fiddler gibi bir proxy yakalayabilir. Sunucu taraflı iş akışlarında Fiddler doğru araçtır.
İlgili Makaleler
- API anahtarı güvenliği ve IP beyaz listeleme
- CaptchaAI API anahtarı rotasyonu
- CaptchaAI API uç nokta eşlemesi
Sonraki Adımlar
Temiz API hata mesajları hata ayıklamayı hızlandırır; CaptchaAI ile başlayın ve daha derin, istek düzeyinde incelemeye ihtiyaç duyduğunuzda Fiddler'ı devreye alın.
İlgili kılavuzlar: