python扭曲HTTP代理
我对python非常陌生。我从twisted开始。正如我在Twisted文档中所看到的,这可以创建一个代理服务器python扭曲HTTP代理,python,proxy,twisted,Python,Proxy,Twisted,我对python非常陌生。我从twisted开始。正如我在Twisted文档中所看到的,这可以创建一个代理服务器 class MyProxy(proxy.Proxy): pass class ProxyFactory(http.HTTPFactory): protocol = MyProxy reactor.listenTCP(8080, ProxyFactory()) reactor.run() ProxyFactory::protocol看起来像一个成员变量?但是MyP
class MyProxy(proxy.Proxy):
pass
class ProxyFactory(http.HTTPFactory):
protocol = MyProxy
reactor.listenTCP(8080, ProxyFactory())
reactor.run()
ProxyFactory::protocol
看起来像一个成员变量?但是MyProxy
是一个类型名,我不知道它是一种模板吗?否则,如何将类型指定给变量
我真正想要实现的是简单地拒绝对某些端点的请求。我想重写
buildProtocol
,但提供的参数addr
始终是127.0.0.1ProxyFactory。protocol
是Python类属性。由于Python是一种动态类型化语言,它比Java等语言更灵活地定义变量和类
MyProxy是Proxy子类的空类,它不定义Proxy.Proxy中默认提供的任何行为。您可能需要做的(我不擅长Twisted的内部结构)是查看proxy.proxy类的文档,并通过在MyProxy中重新定义一些方法函数来重写它们,以便这些方法执行您正在寻找的逻辑
如果您查看Twisted API文档中的源代码,那么添加自定义逻辑的好地方应该是ProxyRequest.procese(),它在解析传入的HTTP请求后开始连接远程主机
requestFactory
class属性将其提供给MyProxy