Trong Indy 10, kết nối TIdHTTP với một proxy SOCKS thông qua IOHandler của nó. Giả sử biểu mẫu đã có các thành phần Http, SocketHandler và Socks:

Http.IOHandler := SocketHandler;
SocketHandler.TransparentProxy := Socks;
Socks.Host := 'proxy.example';
Socks.Port := 1080;
Socks.Version := svSocks5;

Page := Http.Get('http://example.com/');

Ở đây SocketHandler là một TIdIOHandlerStack và Socks là một TIdSocksInfo. Cấu hình các thành phần trước khi gửi yêu cầu. Với ví dụ trang công khai không có thông tin xác thực proxy này, hãy chọn một ứng viên SOCKS5 từ danh sách proxy SOCKS5 và giữ mọi tuyến proxy HTTP lỗi thời ở trạng thái trống như mô tả bên dưới. Việc chọn phiên bản SOCKS rất quan trọng vì mặc định là svNoSocks.

ProxyParams của TIdHTTP cấu hình một proxy HTTP. Tuyến chỉ dùng SOCKS thì thuộc về TransparentProxy. Giữ thêm một proxy HTTP ở đó cũng có thể mô tả một trung gian khác ngoài kết nối SOCKS, vì vậy hãy xóa cấu hình proxy HTTP lỗi thời khi nó không thuộc đường đi dự kiến.

Để xác thực SOCKS5 bằng tên người dùng/mật khẩu, đặt Socks.Authentication thành saUsernamePassword và cung cấp tên người dùng cùng mật khẩu. IOHandler có khả năng SSL nên giữ vai trò TLS của nó; gắn SOCKS vào giao diện proxy kế thừa thay vì thay thế nó bằng một trình xử lý thông thường.

Bài viết liên quan