Tutoriais

Depurando chamadas de API CAPTCHA com Charles Proxy

Quando sua integração CAPTCHA retorna erros inesperados, a inspeção do tráfego HTTP bruto revela o que realmente está sendo enviado e recebido. O Charles Proxy fica entre seu código e CaptchaAI, permitindo que você veja cada solicitação, resposta e detalhes de tempo.


Configuração

1. Instale o proxy Charles

Baixar decharlesproxy. com. Disponível para Windows, macOS e Linux.

2. Habilite o proxy SSL

CaptchaAI usa HTTPS. Para inspecionar o tráfego criptografado:

  1. Proxy -> Configurações de proxy SSL -> Adicionar
  2. Anfitrião: ocr.captchaai.com, Porto: 443
  3. Ajuda -> Proxy SSL -> Instalar certificado raiz Charles
  4. Confie no certificado no armazenamento de certificados do seu sistema operacional

3. Configure seu código para usar Charles

Charles é executado em localhost:8888 por padrão.

Píton:

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,
});

O que inspecionar

Enviar solicitação (POST /in.php)

Em Charles, clique na solicitação para /in.php. Verifique:

Guia O que verificar
Solicitação → Cabeçalhos O tipo de conteúdo está correto
Solicitação → Corpo Todos os parâmetros necessários presentes
Resposta → Corpo {"status":1,"request":"TASK_ID"} sobre sucesso
Tempo Duração da solicitação (deve ser <1s)

Problemas comuns visíveis em Charles:

  • Parâmetro method ausenteERROR_BAD_PARAMETERS
  • Tipo de conteúdo incorreto → Parâmetros não analisados
  • googlekey vazioERROR_WRONG_GOOGLEKEY
  • Corpo JSON malformado → Use dados de formulário, não corpo JSON

Solicitação de enquete (GET /res.php)

Confira os pedidos de enquete:

  • Parâmetros: key, action=get, id=TASK_ID
  • Resposta: CAPCHA_NOT_READY (continuar pesquisando) ou {"status":1,"request":"TOKEN"}
  • Tempo: cada enquete seguida do seu intervalo de sono

Depurando problemas comuns

Problema: ERROR_WRONG_GOOGLEKEY

Em Charles, observe o corpo da solicitação de envio. Encontre o campo googlekey:

# What Charles shows:
key=YOUR_API_KEY&method=userrecaptcha&googlekey=&pageurl=https://example.com&json=1
                                      ^^^^^^^^ empty!

Correção: a extração do sitekey falhou no upstream. Verifique seu código de extração.

Problema: token rejeitado pelo site de destino

Compare o que CaptchaAI retornou com o que você está injetando:

  1. Em Charles, encontre a resposta /res.php com status: 1
  2. Copie o token completo do campo request
  3. Encontre a solicitação subsequente para o site de destino
  4. Verifique se o token está no corpo do formulário como g-recaptcha-response

Problema: as solicitações expiram

Use a visualização Charles Sequence para ver o tempo:

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

Se nunca resolver: verifique se a chave do site e o URL da página estão corretos.


Recursos do Charles para depuração de CAPTCHA

Repetir solicitação

Clique com o botão direito em qualquer solicitação → Repetir para reenviá-la. Útil para testar solicitações de enquete sem executar novamente todo o script.

Pontos de interrupção

Defina um ponto de interrupção em /in.php para inspecionar e modificar a solicitação antes de ela ser enviada:

  1. Proxy -> Configurações de ponto de interrupção -> Adicionar
  2. Host: ocr.captchaai.com, Caminho: /in.php
  3. Verifique Solicitação
  4. Agora seu código faz uma pausa antes de enviar – você pode editar os parâmetros

Mapa local

Substitua as respostas da API por arquivos locais para teste:

  1. Ferramentas -> Mapa Local -> Adicionar
  2. Mapeie https://ocr.captchaai.com/res.php para um arquivo JSON local
  3. Crie mock_response.json:
{"status": 1, "request": "mock_token_for_testing"}

Isso permite testar seu código de envio controlado ao endpoint QA sem usar créditos de API.

Acelerador

Simule conexões lentas:

  1. Proxy -> Configurações de aceleração -> Ativar
  2. Defina a predefinição para velocidades 3G ou nível EDGE
  3. Teste se o seu código lida corretamente com respostas lentas e tempos limite

Alternativas paraCharles

Ferramenta Plataforma HTTPS Custo
Procurador Carlos Win/Mac/Linux Requer instalação de certificado Pago (teste gratuito)
mitmproxy Win/Mac/Linux Requer instalação de certificado Grátis
Violinista Janelas Descriptografia HTTPS integrada Grátis
Procurador macOS Configuração HTTPS com um clique Grátis

configuração rápida do mitmproxy

# Install
pip install mitmproxy

# Run
mitmproxy --listen-port 8080

# Configure Python
proxies = {"https": "http://localhost:8080"}

Solução de problemas

Problema Causa Correção
Erros SSL no código Certificado Charles não confiável Instale o certificado raiz Charles; use verify=False para desenvolvedor
Nenhuma solicitação visível Código que não usa proxy Definir proxy na configuração requests/axios
Resposta HTTPS distorcida Proxy SSL não ativado Adicionar ocr.captchaai.com às configurações de proxy SSL
Charles retarda solicitações Pontos de interrupção ativados Desative os pontos de interrupção quando não forem necessários

Perguntas frequentes

Devo usar Charles na produção?

Não. Charles é uma ferramenta de desenvolvimento e depuração. Use registro e monitoramento estruturados para observabilidade da produção.

O roteamento através de Charles afeta a resolução de CAPTCHA?

Não. CaptchaAI não vê Charles como um proxy – suas solicitações passam de forma transparente.


Depure e otimize sua integração CaptchaAI

Obtenha sua chave API emcaptchaai.com.


Guias relacionados

Os comentários estão desativados para este artigo.