gpt4 book ai didi

带有 Twisted 的 Python 代理

转载 作者:行者123 更新时间:2023-11-28 17:50:08 24 4
gpt4 key购买 nike

您好!我有这段代码:

from twisted.web import proxy, http
from twisted.internet import reactor

class akaProxy(proxy.Proxy):
"""
Local proxy = bridge between browser and web application
"""

def dataReceived(self, data):

print "Received data..."

headers = data.split("\n")
request = headers[0].split(" ")

method = request[0].lower()
action = request[1]
print action
print "ended content manipulation"
return proxy.Proxy.dataReceived(self, data)

class ProxyFactory(http.HTTPFactory):
protocol = akaProxy

def intercept(port):
print "Intercept"
try:
factory = ProxyFactory()
reactor.listenTCP(port, factory)
reactor.run()
except Exception as excp:
print str(excp)

intercept(1337)

我使用上面的代码来拦截浏览器和网站之间的所有内容。使用上面的时候,我配置我的浏览器设置:IP:127.0.0.1 和端口:1337。我把这个脚本放在远程服务器上,让我的远程服务器充当代理服务器。但是,当我将浏览器代理 IP 设置更改为我的服务器时,它不起作用。我做错了什么?我还需要配置什么?

最佳答案

大概您的 dataReceived 在尝试解析传递给它的数据时引发异常。尝试启用日志记录,以便您可以看到更多正在发生的事情:

from twisted.python.log import startLogging
from sys import stdout
startLogging(stdout)

您的解析器可能引发异常的原因是 dataReceived 不会仅在完整请求时被调用。无论从 TCP 连接中读取什么字节,它都会被调用。这可能是一个完整的请求、一个部分请求,甚至是两个请求(如果正在使用流水线)。

关于带有 Twisted 的 Python 代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11799936/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com