@ Реми Лебо: вы правы, я запутался с реализацией прокси, которую я делал некоторое время назад, используя только TidHTTPServer.

ользую TIdHTTPProxyServer для реализации простого HTTP-прокси, но теперь я хотел бы заблокировать некоторые соединения, если они соответствуют определенным URL-адресам. Какое событие и / или компонент лучше всего для этого? Indy документация не слишком объяснительная. :(

Спасибо!

 Free Consulting12 янв. 2011 г., 10:04
TIdHTTPProxyServer просто не может этого сделать, нужно отредактировать его код
 ComputerSaysNo12 янв. 2011 г., 10:18
@ Червь С уважением, да, может, посмотрите мой ответ ...
 opc0de11 апр. 2013 г., 15:20
@jachguate возможно ли изменить ответ?
 jachguate12 янв. 2011 г., 18:46
@Worm и @Dorin: Конечно, это возможно, посмотри мой ответ. ;)

Ответы на вопрос(1)

Решение Вопроса

OnHTTPBeforeCommand (который срабатывает до отправки команды на HTTP-сервер).

Проверьте свойства параметра Context, вы найдете полезные:

Context.Command
Context.OutboundClient.Host
Context.OutboundClient.Port
Context.Document
Context.Headers

Я никогда не пытался остановить PassTrough, но держу пари, что вы можете сделать это, просто вызвав исключение в этот момент, если вы определите, что есть совпадение с правилом блока.

 TheNewbie13 янв. 2011 г., 06:58
Ваш ответ заставил меня понять, что я использовал старую версию Indy. Это значительно улучшилось, по крайней мере, части, которые я проверял.

Ваш ответ на вопрос