Khi tích hợp CAPTCHA của bạn trả về các lỗi không mong muốn, việc kiểm tra lưu lượng HTTP thô sẽ tiết lộ những gì thực sự được gửi và nhận. Charles Proxy nằm giữa mã của bạn và CaptchaAI, cho phép bạn xem mọi chi tiết yêu cầu, phản hồi và thời gian.
thiết lập
1. Cài đặt Charles Proxy
Tải xuống từcharlesproxy.com. Có sẵn trên Windows, macOS và Linux.
2. Kích hoạt proxy SSL
CaptchaAI sử dụng HTTPS. Để kiểm tra lưu lượng được mã hóa:
- Proxy → Cài đặt ủy quyền SSL → Thêm
- Máy chủ:
ocr.captchaai.com, Cổng:443 - Trợ giúp → Ủy quyền SSL → Cài đặt chứng chỉ Charles Root
- Tin cậy chứng chỉ trong kho chứng chỉ hệ điều hành của bạn
3. Định cấu hình mã của bạn để sử dụng Charles
Charles chạy trên localhost:8888 theo mặc định.
Trăn:
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,
});
Những gì cần kiểm tra
Gửi yêu cầu (POST /in.php)
Ở Charles, nhấp vào yêu cầu tới /in.php. Kiểm tra:
| Thẻ | Những gì cần xác minh |
|---|---|
| Yêu cầu → Tiêu đề | Loại nội dung là chính xác |
| Yêu cầu -> Nội dung | Tất cả các thông số cần thiết hiện diện |
| Phản hồi → Nội dung | {"status":1,"request":"TASK_ID"} thành công |
| Thời gian | Thời lượng yêu cầu (nên <1 giây) |
Các vấn đề thường gặp ở Charles:
- Thiếu tham số
method->ERROR_BAD_PARAMETERS - Loại nội dung sai → Các tham số không được phân tích cú pháp
googlekeytrống ->ERROR_WRONG_GOOGLEKEY- Nội dung JSON không đúng định dạng -> Sử dụng dữ liệu biểu mẫu, không phải nội dung JSON
Yêu cầu thăm dò ý kiến (GET /res.php)
Kiểm tra các yêu cầu thăm dò ý kiến:
- Thông số:
key,action=get,id=TASK_ID - Phản hồi:
CAPCHA_NOT_READY(tiếp tục bỏ phiếu) hoặc{"status":1,"request":"TOKEN"} - Thời gian: Mỗi cuộc thăm dò theo sau là khoảng thời gian ngủ của bạn
Gỡ lỗi các vấn đề phổ biến
Vấn đề: ERROR_WRONG_GOOGLEKEY
Ở Charles, hãy nhìn vào nội dung yêu cầu gửi. Tìm trường googlekey:
# What Charles shows:
key=YOUR_API_KEY&method=userrecaptcha&googlekey=&pageurl=https://example.com&json=1
^^^^^^^^ empty!
Khắc phục: Việc trích xuất khóa trang web không thành công ngược dòng. Kiểm tra mã trích xuất của bạn.
Vấn đề: Mã thông báo bị từ chối bởi trang web mục tiêu
So sánh những gì CaptchaAI trả về với những gì bạn đang tiêm:
- Ở Charles, tìm phản hồi
/res.phpvớistatus: 1 - Sao chép mã thông báo đầy đủ từ trường
request - Tìm yêu cầu tiếp theo đến trang đích
- Xác minh mã thông báo có dạng nội dung là
g-recaptcha-response
Vấn đề: Hết thời gian yêu cầu
Sử dụng chế độ xem Charles Trình tự để xem thời gian:
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
Nếu vấn đề không bao giờ được giải quyết: hãy kiểm tra xem khóa trang và URL trang có chính xác hay không.
Charles có tính năng gỡ lỗi CAPTCHA
Lặp lại yêu cầu
Nhấp chuột phải vào bất kỳ yêu cầu nào †’ Lặp lại để gửi lại. Hữu ích để kiểm tra các yêu cầu thăm dò ý kiến mà không cần chạy lại toàn bộ tập lệnh của bạn.
Điểm dừng
Đặt điểm dừng trên /in.php để kiểm tra và sửa đổi yêu cầu trước khi gửi:
- Proxy → Cài đặt điểm dừng → Thêm
- Máy chủ:
ocr.captchaai.com, Đường dẫn:/in.php - Kiểm tra Yêu cầu
- Bây giờ mã của bạn tạm dừng trước khi gửi - bạn có thể chỉnh sửa tham số
Bản đồ địa phương
Thay thế phản hồi API bằng các tệp cục bộ để kiểm tra:
- Công cụ -> Bản đồ địa phương -> Thêm
- Ánh xạ
https://ocr.captchaai.com/res.phptới tệp JSON cục bộ - Tạo
mock_response.json:
{"status": 1, "request": "mock_token_for_testing"}
Điều này cho phép bạn kiểm tra mã chèn mã thông báo của mình mà không cần sử dụng tín dụng API.
ga
Mô phỏng kết nối chậm:
- Proxy → Cài đặt bướm ga → Bật
- Đặt giá trị đặt trước thành tốc độ 3G hoặc cấp EDGE
- Kiểm tra xem mã của bạn có xử lý phản hồi chậm và thời gian chờ chính xác không
Các lựa chọn thay thế cho Charles
| Công cụ | Nền tảng | HTTPS | Chi phí |
|---|---|---|---|
| Charles ủy quyền | Win/Mac/Linux | Yêu cầu cài đặt chứng chỉ | Trả phí (dùng thử miễn phí) |
| mitmproxy | Win/Mac/Linux | Yêu cầu cài đặt chứng chỉ | miễn phí |
| người chơi vĩ cầm | cửa sổ | Giải mã HTTPS tích hợp | miễn phí |
| Người ủy quyền | macOS | Thiết lập HTTPS bằng một cú nhấp chuột | Freemium |
thiết lập nhanh mitmproxy
# Install
pip install mitmproxy
# Run
mitmproxy --listen-port 8080
# Configure Python
proxies = {"https": "http://localhost:8080"}
Khắc phục sự cố
| Vấn đề | Nguyên nhân | Cách xử lý |
|---|---|---|
| Lỗi SSL trong mã | Chứng chỉ Charles không đáng tin cậy | Cài đặt chứng chỉ gốc Charles; sử dụng verify=False cho nhà phát triển |
| Không có yêu cầu nào được hiển thị | Mã không sử dụng proxy | Đặt proxy trong cấu hình request/axios |
| Phản hồi HTTPS bị cắt xén | Proxy SSL chưa được bật | Thêm ocr.captchaai.com vào cài đặt ủy quyền SSL |
| Charles làm chậm yêu cầu | Đã bật điểm dừng | Vô hiệu hóa điểm dừng khi không cần thiết |
Câu hỏi thường gặp
Tôi có nên sử dụng Charles trong sản xuất không?
Không. Charles là một công cụ phát triển và gỡ lỗi. Sử dụng tính năng ghi nhật ký và giám sát có cấu trúc để có thể quan sát được quá trình sản xuất.
Việc định tuyến qua Charles có ảnh hưởng đến việc giải CAPTCHA không?
Không. CaptchaAI không coi Charles là người được ủy quyền - các yêu cầu của bạn được thực hiện một cách minh bạch.
Gỡ lỗi và tối ưu hóa tích hợp CaptchaAI của bạn
Nhận khóa API của bạn tạicaptchaai.com.
Hướng dẫn liên quan
- Ghi nhật ký có cấu trúc cho hoạt động CAPTCHA
- Tham khảo mã lỗi CaptchaAI
- Bộ sưu tập người đưa thư để kiểm tra API CaptchaAI