CAPTCHA entegrasyonunuz beklenmedik hatalar döndürdüğünde, ham HTTP trafiğini incelemek gerçekte nelerin gönderilip alındığını ortaya çıkarır. Charles Proxy, kodunuz ile CaptchaAI arasında yer alır ve her isteği, yanıtı ve zamanlama ayrıntısını görmenizi sağlar.
Kurulum
1. Charles Proxy'yi yükleyin
Şuradan indirin:charlesproxy.com. Windows, macOS ve Linux'ta mevcuttur.
2. SSL proxy'yi etkinleştirin
CaptchaAI HTTPS kullanır. Şifrelenmiş trafiği incelemek için:
- Proxy → SSL Proxy Ayarları → Ekle
- Ana Bilgisayar:
ocr.captchaai.com, Bağlantı Noktası:443 - Yardım → SSL Proxy'si → Charles Kök Sertifikasını Yükleme
- İşletim sistemi sertifika deponuzdaki sertifikaya güvenin
3. Kodunuzu Charles'ı kullanacak şekilde yapılandırın
Charles varsayılan olarak localhost:8888'de çalışır.
Python:
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,
});
Ne kontrol edilmeli
İsteği gönder (POST /in.php)
Charles'ta /in.php isteğine tıklayın. Kontrol edin:
| Sekme | Doğrulanması gerekenler |
|---|---|
| İstek – Başlıklar | İçerik Türü doğru |
| Talep → Gövde | Gerekli tüm parametreler mevcut |
| Yanıt → Gövde | Başarı üzerine {"status":1,"request":"TASK_ID"} |
| Zamanlama | İstek süresi (<1s olmalıdır) |
Charles'ta görülen yaygın sorunlar:
methodparametresi eksik †'ERROR_BAD_PARAMETERS- Yanlış İçerik Türü † Parametreler ayrıştırılmadı
- Boş
googlekey→ERROR_WRONG_GOOGLEKEY - Kötü biçimlendirilmiş JSON gövdesi †' JSON gövdesini değil form verilerini kullanın
Anket isteği (GET /res.php)
Anket isteklerini kontrol edin:
- Paramlar:
key,action=get,id=TASK_ID - Yanıt:
CAPCHA_NOT_READY(oylamaya devam edin) veya{"status":1,"request":"TOKEN"} - Zamanlama: Her anketin ardından uyku aralığınız gelir
Yaygın sorunlarda hata ayıklama
Sorun: ERROR_WRONG_GOOGLEKEY
Charles'ta istek gönderme gövdesine bakın. googlekey alanını bulun:
# What Charles shows:
key=YOUR_API_KEY&method=userrecaptcha&googlekey=&pageurl=https://example.com&json=1
^^^^^^^^ empty!
Düzeltme: Site anahtarı çıkarma işlemi yukarı akışta başarısız oldu. Çıkarma kodunuzu kontrol edin.
Sorun: Belirteç hedef site tarafından reddedildi
CaptchaAI'nin döndürdüğü şeyle enjekte ettiğiniz şeyi karşılaştırın:
- Charles'ta
status: 1ile/res.phpyanıtını bulun - Tam belirteci
requestalanından kopyalayın - Hedef siteye gelen sonraki isteği bulun
- Belirtecin form gövdesinde
g-recaptcha-responseolarak olduğunu doğrulayın
Sorun: İsteklerin zaman aşımı
Zamanlamayı görmek için Charles Sıra görünümünü kullanın:
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
Hiçbir zaman çözülmezse: site anahtarının ve sayfa URL'sinin doğru olup olmadığını kontrol edin.
CAPTCHA hata ayıklaması için Charles özellikleri
İsteği tekrarla
Herhangi bir isteği yeniden göndermek için Tekrar'a sağ tıklayın. Komut dosyanızın tamamını yeniden çalıştırmadan anket isteklerini test etmek için kullanışlıdır.
Kesme noktaları
İsteği gönderilmeden önce incelemek ve değiştirmek için /in.php'de bir kesme noktası ayarlayın:
- Proxy → Kesme Noktası Ayarları → Ekle
- Ana Bilgisayar:
ocr.captchaai.com, Yol:/in.php - İstek'i işaretleyin
- Artık kodunuz gönderilmeden önce duraklatılıyor; parametreleri düzenleyebilirsiniz
Yerel Harita
Test için API yanıtlarını yerel dosyalarla değiştirin:
- Araçlar → Yerel Harita → Ekle
https://ocr.captchaai.com/res.php'yi yerel bir JSON dosyasıyla eşleyinmock_response.json'yi oluşturun:
{"status": 1, "request": "mock_token_for_testing"}
Bu, jeton ekleme kodunuzu API kredisi kullanmadan test etmenize olanak tanır.
Gaz kelebeği
Yavaş bağlantıları simüle edin:
- Proxy → Kısma Ayarları → Etkinleştir
- Ön ayarı 3G veya EDGE düzeyi hızlara ayarlayın
- Kodunuzun yavaş yanıtları ve zaman aşımlarını doğru şekilde işleyip işlemediğini test edin
Charles'a alternatifler
| Araç | platformu | HTTPS | Maliyet |
|---|---|---|---|
| Charles Vekili | Win/Mac/Linux | Sertifika kurulumu gerektirir | Ücretli (ücretsiz deneme) |
| mitmproxy | Win/Mac/Linux | Sertifika kurulumu gerektirir | Ücretsiz |
| Kemancı | Windows | Yerleşik HTTPS şifre çözme | Ücretsiz |
| Vekil | macOS | Tek tıkla HTTPS kurulumu | Ücretsiz |
mitmproxy hızlı kurulumu
# Install
pip install mitmproxy
# Run
mitmproxy --listen-port 8080
# Configure Python
proxies = {"https": "http://localhost:8080"}
Sorun giderme
| Sorun | Sebep | Düzeltme |
|---|---|---|
| Koddaki SSL hataları | Charles sertifikasına güvenilmiyor | Charles kök sertifikasını yükleyin; geliştirme için verify=False'yi kullanın |
| Hiçbir istek görünmüyor | Kod proxy kullanmıyor | İsteklerde proxy'yi ayarlayın/axios yapılandırması |
| Bozuk HTTPS yanıtı | SSL proxy'si etkin değil | ocr.captchaai.com'yi SSL Proxy Ayarlarına ekleyin |
| Charles istekleri yavaşlatıyor | Kesme noktaları etkinleştirildi | Gerekmediğinde kesme noktalarını devre dışı bırakın |
SSS
Üretimde Charles'ı kullanmalı mıyım?
Hayır. Charles bir geliştirme ve hata ayıklama aracıdır. Üretimin gözlemlenebilirliği için yapılandırılmış günlük kaydı ve izlemeyi kullanın.
Charles üzerinden yönlendirme CAPTCHA çözümünü etkiler mi?
Hayır. CaptchaAI, Charles'ı vekil olarak görmüyor; istekleriniz şeffaf bir şekilde iletiliyor.
CaptchaAI entegrasyonunuzda hata ayıklayın ve optimize edin
API anahtarınızı şu adresten alın:captchaai.com.