Cuando tu integración CAPTCHA arroja errores inesperados, la inspección del tráfico HTTP sin procesar revela exactamente lo que se envía y recibe. Charles Proxy se sitúa entre tu código y CaptchaAI, permitiendo ver cada solicitud, respuesta y detalle de timing.
Configuración
1. Instale el proxy Charles
Descarga desde charlesproxy.com. Disponible en Windows, macOS y Linux.
2. Habilite el proxy SSL
CaptchaAI utiliza HTTPS. Para inspeccionar el tráfico cifrado:
- Proxy -> Configuración de proxy SSL -> Agregar
- Anfitrión:
ocr.captchaai.com, Puerto:443 - Ayuda -> Proxy SSL -> Instalar certificado raíz de Charles
- Confíe en el certificado en el almacén de certificados de su sistema operativo
3. Configure su código para usar Charles
Charles se ejecuta en localhost:8888 de forma predeterminada.
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,
});
Qué inspeccionar
Solicitud de envío (POST /in.php)
En Charles, haz clic en la solicitud a /in.php. Verifica:
| Pestaña | Qué verificar |
|---|---|
| Request → Cabeceras | El Content-Type es correcto |
| Request → Cuerpo | Todos los parámetros requeridos presentes |
| Response → Cuerpo | {"status":1,"request":"TASK_ID"} en éxito |
| Timing | Duración de la solicitud (debe ser <1 s) |
Problemas comunes visibles en Charles:
- Falta el parámetro
method->ERROR_BAD_PARAMETERS - Tipo de contenido incorrecto -> Parámetros no analizados
- Vacío
googlekey->ERROR_WRONG_GOOGLEKEY - Cuerpo JSON con formato incorrecto -> Utilice datos de formulario, no cuerpo JSON
Solicitud de sondeo (GET /res.php)
Consulta las solicitudes de consulta:
- Parámetros:
key,action=get,id=TASK_ID - Respuesta:
CAPCHA_NOT_READY(seguir sondeando) o{"status":1,"request":"TOKEN"} - Tiempo: Cada consulta seguida de su intervalo de sueño
Depurar problemas comunes
Problema: ERROR_WRONG_GOOGLEKEY
En Charles, mire el cuerpo de envío de solicitud. Busque el campo googlekey:
# What Charles shows:
key=YOUR_API_KEY&method=userrecaptcha&googlekey=&pageurl=https://example.com&json=1
^^^^^^^^ empty!
Solución: la extracción de la clave del sitio falló en sentido ascendente. Verifique su código de extracción.
Problema: token rechazado por el sitio de destino
Compare lo que devolvió CaptchaAI con lo que está inyectando:
- En Charles, encuentre la respuesta
/res.phpconstatus: 1 - Copie el token completo del campo
request - Encuentre la solicitud posterior al sitio de destino
- Verifique que el token esté en el cuerpo del formulario como
g-recaptcha-response
Problema: Se agota el tiempo de espera de las solicitudes
Utilice la vista Charles Secuencia para ver el tiempo:
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
Si nunca se resuelve: verifique si la clave del sitio y la URL de la página son correctas.
Funciones de Charles para la depuración de CAPTCHA
Repetir solicitud
Haga clic derecho en cualquier solicitud -> Repetir para volver a enviarla. Útil para probar solicitudes de consulta sin volver a ejecutar todo el script.
Puntos de interrupción
Establezca un punto de interrupción en /in.php para inspeccionar y modificar la solicitud antes de enviarla:
- Proxy -> Configuración de punto de interrupción -> Agregar
- Anfitrión:
ocr.captchaai.com, Ruta:/in.php - Consultar Solicitar
- Ahora su código se detiene antes de enviarlo; puede editar los parámetros
Mapa local
Reemplace las respuestas de la API con archivos locales para realizar pruebas:
- Herramientas -> Mapa local -> Agregar
- Asigne
https://ocr.captchaai.com/res.phpa un archivo JSON local - Crear
mock_response.json:
{"status": 1, "request": "mock_token_for_testing"}
Esto le permite probar su código de inyección de token sin utilizar créditos API.
acelerador
Simular conexiones lentas:
- Proxy -> Configuración del acelerador -> Habilitar
- Establezca velocidades preestablecidas en 3G o EDGE-level
- Pruebe si su código maneja correctamente las respuestas lentas y los tiempos de espera
Alternativas a Carlos
| Herramienta | Plataforma | HTTPS | Costo |
|---|---|---|---|
| Charles Proxy | Win/Mac/Linux | Requiere instalación de certificado | De pago (prueba gratuita) |
| mitmproxy | Win/Mac/Linux | Requiere instalación de certificado | Gratis |
| Fiddler | Windows | Descifrado HTTPS incorporado | Gratis |
| Proxyman | macOS | Configuración HTTPS con un clic | Freemium |
Configuración rápida de mitmproxy
# Install
pip install mitmproxy
# Run
mitmproxy --listen-port 8080
# Configure Python
proxies = {"https": "http://localhost:8080"}
Solución de problemas
| Problema | Causa | Solución |
|---|---|---|
| Errores SSL en el código | Certificado de Charles no confiable | Instala el certificado raíz de Charles; usa verify=False en desarrollo |
| No hay solicitudes visibles | El código no usa proxy | Establece el proxy en la configuración de requests/axios |
| Respuesta HTTPS confusa | Proxy SSL no habilitado | Agrega ocr.captchaai.com a la configuración de proxy SSL |
| Charles ralentiza las solicitudes | Breakpoints habilitados | Deshabilita los breakpoints cuando no sean necesarios |
Preguntas frecuentes
¿Debería utilizar Charles en producción?
No. Charles es una herramienta de desarrollo y depuración. Utilice registros y monitoreo estructurados para la observabilidad de la producción.
¿El enrutamiento a través de Charles afecta la resolución de CAPTCHA?
No. CaptchaAI no ve a Charles como un representante: sus solicitudes se transmiten de forma transparente.
Guías relacionadas
- Registro estructurado para operaciones CAPTCHA
- Referencia de códigos de error CaptchaAI
- Colección Postman para pruebas API CaptchaAI