Eğitimler

Charles Proxy ile CAPTCHA API Çağrılarında Hata Ayıklama

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:

  1. ProxySSL Proxy AyarlarıEkle
  2. Ana Bilgisayar: ocr.captchaai.com, Bağlantı Noktası: 443
  3. YardımSSL Proxy'siCharles Kök Sertifikasını Yükleme
  4. İş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:

  • method parametresi eksik †' ERROR_BAD_PARAMETERS
  • Yanlış İçerik Türü † Parametreler ayrıştırılmadı
  • Boş googlekeyERROR_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:

  1. Charles'ta status: 1 ile /res.php yanıtını bulun
  2. Tam belirteci request alanından kopyalayın
  3. Hedef siteye gelen sonraki isteği bulun
  4. Belirtecin form gövdesinde g-recaptcha-response olarak 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:

  1. ProxyKesme Noktası AyarlarıEkle
  2. Ana Bilgisayar: ocr.captchaai.com, Yol: /in.php
  3. İstek'i işaretleyin
  4. 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:

  1. AraçlarYerel HaritaEkle
  2. https://ocr.captchaai.com/res.php'yi yerel bir JSON dosyasıyla eşleyin
  3. mock_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:

  1. ProxyKısma Ayarları → Etkinleştir
  2. Ön ayarı 3G veya EDGE düzeyi hızlara ayarlayın
  3. 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.


İlgili kılavuzlar

Bu makale için yorumlar devre dışı bırakılmıştır.