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:
- Proxy -> Configurações de proxy SSL -> Adicionar
- Anfitrião:
ocr.captchaai.com, Porto:443 - Ajuda -> Proxy SSL -> Instalar certificado raiz Charles
- 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
methodausente →ERROR_BAD_PARAMETERS - Tipo de conteúdo incorreto → Parâmetros não analisados
googlekeyvazio →ERROR_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:
- Em Charles, encontre a resposta
/res.phpcomstatus: 1 - Copie o token completo do campo
request - Encontre a solicitação subsequente para o site de destino
- 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:
- Proxy -> Configurações de ponto de interrupção -> Adicionar
- Host:
ocr.captchaai.com, Caminho:/in.php - Verifique Solicitação
- 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:
- Ferramentas -> Mapa Local -> Adicionar
- Mapeie
https://ocr.captchaai.com/res.phppara um arquivo JSON local - 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:
- Proxy -> Configurações de aceleração -> Ativar
- Defina a predefinição para velocidades 3G ou nível EDGE
- 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
- Log estruturado para operações CAPTCHA
- Referência de códigos de erro CaptchaAI
- Coleção Postman para testes de API CaptchaAI