Tutorials

Menggunakan Fiddler untuk Memeriksa Traffic API CaptchaAI

Log aplikasi Anda cuma menulis "solve gagal", tanpa detail apa pun — padahal penyebabnya bisa macam-macam: payload salah bentuk, sitekey kosong, atau proxy yang diam-diam memblokir koneksi. Menambah print() jarang menjawab ini secepat melihat langsung traffic HTTP yang dikirim dan diterima. Fiddler melakukan persis itu: menangkap tiap request dan respons antara kode Anda dan API CaptchaAI, lengkap header, payload mentah, dan timing presisi milidetik.

Fiddler layak dikeluarkan begitu Anda menghadapi salah satu dari ini:

  • Error API, log minim — request lengkap, header, dan respons apa adanya
  • Request solve macet — apakah request sampai ke server atau timeout
  • Token tidak valid — isi token sebenarnya dan potensi masalah encoding
  • Dicurigai gara-gara proxy — apakah request di-route lewat proxy yang Anda set
  • Kena rate limit — timing tiap request dan pola respons 429

Setup Fiddler untuk Traffic HTTPS CaptchaAI

Langkah 1: Aktifkan Dekripsi HTTPS

Fiddler bekerja sebagai proxy lokal yang mengintersepsi traffic HTTPS. Aktifkan dekripsi HTTPS lebih dulu — tanpa ini, payload API CaptchaAI hanya akan tampil terenkripsi dan tidak terbaca:

Langkah Fiddler Everywhere Fiddler Classic (Windows)
1 Settings → HTTPS Tools → Options → HTTPS
2 Aktifkan "Capture HTTPS traffic" Centang "Decrypt HTTPS traffic"
3 Instal sertifikat root saat diminta Klik "Actions" → "Trust Root Certificate"
4 Percayai sertifikat itu di certificate store OS Anda

Langkah 2: Arahkan Kode Anda ke Proxy Fiddler

Fiddler mendengarkan di 127.0.0.1:8866 (Fiddler Everywhere) atau 127.0.0.1:8888 (Fiddler Classic). Set proxy ini di HTTP client Anda sebelum mengirim request ke CaptchaAI:

Python (requests):

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 dengan axios):

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();

Catatan: verify=False (Python) menonaktifkan verifikasi SSL untuk sertifikat intersepsi Fiddler. Ini aman untuk sesi debugging lokal, tapi jangan sampai terbawa ke kode produksi — hapus baris ini begitu selesai.

Filter Supaya Hanya Traffic CaptchaAI yang Tampil

Kalau aplikasi Anda punya banyak request keluar, tambahkan filter dulu supaya sesi CaptchaAI tidak tenggelam di antara request lain:

Langkah Fiddler Everywhere Fiddler Classic
1 Klik tab Filters Klik tab Filters, centang "Use Filters"
2 Tambahkan rule: Hostcontainsocr.captchaai.com Di "Hosts", pilih "Show only the following Hosts"
3 Terapkan filter Masukkan ocr.captchaai.com

Sekarang hanya request ke API CaptchaAI yang tampil di daftar sesi.

Membaca Request dan Respons CaptchaAI di Fiddler

Dua fase yang perlu diperiksa: kirim task (in.php) dan polling hasil (res.php):

Fase Panel Yang Harus Diperiksa
in.php Headers Content-Type harus application/x-www-form-urlencoded
in.php Request Body Pastikan key, method, googlekey/sitekey, pageurl sudah benar
in.php Response Body Harus mengembalikan {"status":1,"request":"TASK_ID"} kalau berhasil
in.php Response Code 200 = OK, 403 = masalah API key, 429 = kena rate limit
res.php Request Body key, action=get, id=TASK_ID, json=1
res.php Response Body CAPCHA_NOT_READY selama diproses, {"status":1,"request":"TOKEN"} kalau selesai
res.php Timing Interval antar polling — idealnya 5 detik ke atas

Pola masalah yang paling sering muncul di Fiddler

Yang Anda Lihat Artinya
Request body punya googlekey kosong Ekstraksi sitekey gagal di kode Anda, sebelum request dikirim
Respons: {"status":0,"request":"ERROR_WRONG_USER_KEY"} API key tidak valid
Respons: {"status":0,"request":"ERROR_ZERO_BALANCE"} Saldo akun habis
Respons: {"status":0,"request":"ERROR_NO_SLOT_AVAILABLE"} Server sedang penuh — coba ulang
Tidak ada respons sama sekali (timeout) Network atau proxy memblokir koneksi
Kode status 429 Terlalu banyak request — perlambat polling

Pakai Breakpoint untuk Uji Coba Parameter

Breakpoint menahan request sebelum dikirim, jadi Anda bisa mengubah isinya dulu:

Fiddler Everywhere Fiddler Classic
Set breakpoint Rules → Add Rule, match URL contains ocr.captchaai.com/in.php, action "Pause before sending" Rules → Automatic Breakpoints → Before Requests, atau ketik bpu ocr.captchaai.com di QuickExec bar

Begitu request tertahan, periksa request body-nya, lalu edit method, googlekey, atau pageurl untuk mencoba nilai lain. Klik "Run to Completion" untuk mengirim request yang sudah dimodifikasi, lalu cek respons yang kembali. Cara ini berguna untuk menguji parameter mana yang bikin gagal, tanpa mengubah kode.

Replay Request yang Gagal Tanpa Restart Aplikasi

Kalau ada request yang gagal, Fiddler bisa mengirimnya ulang tanpa Anda perlu menyentuh kode sama sekali.

Replay langsung, tanpa perubahan

  1. Klik kanan pada sesi yang gagal
  2. Pilih ReplayReissue Requests
  3. Request yang sama dikirim ulang, dengan header dan body identik

Replay sambil mengubah parameter

  1. Klik kanan → Edit in Composer
  2. Ubah parameter yang diinginkan
  3. Klik Execute

Dengan begini Anda menguji perbaikan tanpa restart aplikasi.

Susun Request Manual di Composer

Pakai Composer Fiddler untuk membuat request CaptchaAI dari nol — berguna untuk memastikan apakah API-nya yang bermasalah, bukan kode Anda.

Submit task:

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

Polling hasil:

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

Ganti YOUR_API_KEY, SITE_KEY, dan TASK_ID dengan nilai asli. Cara ini lebih cepat daripada menulis kode kalau Anda cuma ingin memverifikasi API-nya berfungsi normal.

Baca Timing di Tab Timeline

Tab Timeline Fiddler menunjukkan durasi tiap fase request:

Metrik Nilai Sehat Indikasi Masalah
DNS lookup < 50 ms > 500 ms = masalah DNS
TCP connect < 100 ms > 1000 ms = masalah jaringan
TLS handshake < 200 ms > 1000 ms = masalah sertifikat
Server response (in.php) < 500 ms > 2000 ms = server sedang padat
Server response (res.php) < 200 ms > 1000 ms = tidak biasa, cek status akun

Konteks region: server di Asia Tenggara — AWS ap-southeast-1/ap-southeast-3 atau GCP asia-southeast2 (Jakarta) — biasanya punya DNS lookup dan TCP connect lebih rendah dari baseline global karena jarak ke edge server lebih dekat. Kalau TCP connect Anda tetap tembus 500 ms, curigai dulu ISP atau proxy sebelum menuduh sisi CaptchaAI.

Masalah Fiddler yang Sering Ditemui

Masalah Penyebab Perbaikan
Fiddler tidak menampilkan traffic Kode tidak di-route lewat proxy Fiddler Set proxy ke 127.0.0.1:8866 (Everywhere) atau 8888 (Classic)
Error sertifikat SSL Sertifikat root Fiddler belum dipercaya Install ulang sertifikat; tambahkan ke trusted roots
Response body berantakan Respons dikompresi Aktifkan "Decode" di toolbar (atau Rules → Remove All Encodings)
Breakpoint tidak terpicu Filter atau rule tidak cocok Pastikan pola URL persis sama dengan ocr.captchaai.com
Traffic muncul, body kosong Content-Length tidak cocok, atau streaming Klik sesi, tunggu respons penuh dimuat

Export Session untuk Dikirim ke Support CaptchaAI

Kalau Anda perlu berbagi data debug dengan support CaptchaAI:

  1. Pilih sesi yang relevan di Fiddler
  2. File → Export Sessions → Selected Sessions
  3. Pilih format HTTPArchive (.har)
  4. Hapus API key Anda dari file yang diekspor sebelum dibagikan
Cari dan ganti API key aktual Anda dengan "REDACTED" di file .har

Pertanyaan Umum

Apakah pakai Fiddler bikin solve CAPTCHA jadi lebih lambat?

Minimal, hampir tidak terasa. Fiddler menambah sekitar 1–5 ms latensi per request karena proxy hop tambahan — kecil sekali dibanding waktu solve CAPTCHA yang normalnya 10–60 detik. Satu catatan: timestamp Fiddler mencatat kapan Fiddler menerima data, bukan kapan kode Anda mengirimnya — jangan jadikan itu satu-satunya sumber timing presisi.

Amankah pakai Fiddler untuk debug traffic API yang sedang jalan di production?

Boleh, asal API key dan data sensitif tidak ikut ter-share. Nonaktifkan verify=False begitu sesi debug selesai, jangan biarkan proxy Fiddler menyala permanen di server production, dan selalu redact API key sebelum mengirim file .har ke siapa pun.

Bisakah Fiddler dipakai untuk debug integrasi callback/webhook CaptchaAI, bukan cuma alur polling res.php?

Bisa, dengan catatan. Fiddler paling kuat untuk traffic yang Anda inisiasi sendiri (outbound) — kalau server Anda memanggil endpoint lain setelah menerima callback, Fiddler menangkapnya dengan baik. Untuk payload callback yang masuk, pasangkan Fiddler dengan logging di endpoint itu sendiri.

Bagaimana cara memastikan API key tidak ikut terbawa saat file .har dibagikan ke tim?

Sebelum membagikan file .har, buka dengan text editor dan cari-ganti (find & replace) string API key Anda dengan placeholder seperti REDACTED. Beberapa versi Fiddler punya opsi export yang menyamarkan header otomatis, tapi tetap verifikasi manual sebelum file dikirim lewat channel yang tidak terenkripsi seperti email atau chat grup.

Artikel Terkait

Setelah traffic-nya jelas, dua isu yang paling sering menyusul adalah keamanan API key dan pembacaan kode error:

Langkah Selanjutnya

Tidak semua masalah solve butuh investigasi sedalam ini — mulai dari API key CaptchaAI Anda dan simpan Fiddler untuk kasus yang butuh inspeksi sampai level byte.

Panduan terkait:

Komentar dinonaktifkan untuk artikel ini.