Indy的Tidhttpproxyserver:如何过滤请求?
题
我正在使用tidhttpproxyserver实现一个简单的HTTP代理,但是如果它们匹配某些URL,我现在想阻止某些连接。哪个事件和/或组件最好实现这一目标? Indy文档不太阐明。 :(
谢谢!
解决方案
作为基本过滤器,您可以使用Onhttpbeforecommand事件处理程序(在命令发送到HTTP服务器之前发射)。
检查上下文参数属性,您会发现有用:
Context.Command
Context.OutboundClient.Host
Context.OutboundClient.Port
Context.Document
Context.Headers
我目前从未尝试过停止梭子,但是我敢打赌,如果您确定有块规则匹配,您可以通过在此时提出例外来做到这一点。
其他提示
该组件具有“连接”事件,双击它并添加此代码:
if AContext.Connection.Socket.Binding.PeerIP = '127.0.0.1' then
AContext.Connection.Disconnect;
用过滤器替换127.0.0.1,这只是一个“极为基本的示例”,也适用于具有“连接”事件的其他Indy服务器。
不隶属于 StackOverflow