Python3中的反向代理

Python3中的反向代理,python,proxy,Python,Proxy,我需要一个简单的Python3反向代理 Unhandled Error Traceback (most recent call last): File "/usr/local/lib/python3.4/dist-packages/twisted/protocols/basic.py", line 571, in dataReceived why = self.lineReceived(line) File "/usr/local/lib/python3.4/dist-packa

我需要一个简单的Python3反向代理

Unhandled Error
Traceback (most recent call last):
  File "/usr/local/lib/python3.4/dist-packages/twisted/protocols/basic.py", line 571, in dataReceived
    why = self.lineReceived(line)
  File "/usr/local/lib/python3.4/dist-packages/twisted/web/http.py", line 1752, in lineReceived
    self.allContentReceived()
  File "/usr/local/lib/python3.4/dist-packages/twisted/web/http.py", line 1845, in allContentReceived
    req.requestReceived(command, path, version)
  File "/usr/local/lib/python3.4/dist-packages/twisted/web/http.py", line 766, in requestReceived
    self.process()
--- <exception caught here> ---
  File "/usr/local/lib/python3.4/dist-packages/twisted/web/server.py", line 185, in process
    resrc = self.site.getResourceFor(self)
  File "/usr/local/lib/python3.4/dist-packages/twisted/web/server.py", line 791, in getResourceFor
    return resource.getChildForRequest(self.resource, request)
  File "/usr/local/lib/python3.4/dist-packages/twisted/web/resource.py", line 98, in getChildForRequest
    resource = resource.getChildWithDefault(pathElement, request)
  File "/usr/local/lib/python3.4/dist-packages/twisted/web/resource.py", line 201, in getChildWithDefault
    return self.getChild(path, request)
  File "/usr/local/lib/python3.4/dist-packages/twisted/web/proxy.py", line 278, in getChild
    self.host, self.port, self.path + b'/' + urlquote(path, safe=b"").encode('utf-8'),
builtins.TypeError: Can't convert 'bytes' object to str implicitly
我喜欢Twisted及其简单的反向http代理

。。。。但它在Python3中抛出了错误

Unhandled Error
Traceback (most recent call last):
  File "/usr/local/lib/python3.4/dist-packages/twisted/protocols/basic.py", line 571, in dataReceived
    why = self.lineReceived(line)
  File "/usr/local/lib/python3.4/dist-packages/twisted/web/http.py", line 1752, in lineReceived
    self.allContentReceived()
  File "/usr/local/lib/python3.4/dist-packages/twisted/web/http.py", line 1845, in allContentReceived
    req.requestReceived(command, path, version)
  File "/usr/local/lib/python3.4/dist-packages/twisted/web/http.py", line 766, in requestReceived
    self.process()
--- <exception caught here> ---
  File "/usr/local/lib/python3.4/dist-packages/twisted/web/server.py", line 185, in process
    resrc = self.site.getResourceFor(self)
  File "/usr/local/lib/python3.4/dist-packages/twisted/web/server.py", line 791, in getResourceFor
    return resource.getChildForRequest(self.resource, request)
  File "/usr/local/lib/python3.4/dist-packages/twisted/web/resource.py", line 98, in getChildForRequest
    resource = resource.getChildWithDefault(pathElement, request)
  File "/usr/local/lib/python3.4/dist-packages/twisted/web/resource.py", line 201, in getChildWithDefault
    return self.getChild(path, request)
  File "/usr/local/lib/python3.4/dist-packages/twisted/web/proxy.py", line 278, in getChild
    self.host, self.port, self.path + b'/' + urlquote(path, safe=b"").encode('utf-8'),
builtins.TypeError: Can't convert 'bytes' object to str implicitly

Python3中是否有类似的功能?

我在pypi上找到了这个简单的包,它似乎工作得很好,而且同样简单


我在pypi上发现了这个简单的包,它似乎工作得很好,同样简单


我自己也无意中遇到了这个问题,在这里找不到答案,我感到很失望。经过深入研究,我将proxy.reverseProxy资源中的path参数更改为bytes而不是str,从而使其正常工作,如下所示:

site = server.Site(proxy.ReverseProxyResource("www.yahoo.com", 80, b''))

这是必要的,因为twisted在内部附加了一个尾随斜杠作为字节,即b'/。

我自己也遇到了这个问题,我很失望在这里找不到答案。经过深入研究,我将proxy.reverseProxy资源中的path参数更改为bytes而不是str,从而使其正常工作,如下所示:

site = server.Site(proxy.ReverseProxyResource("www.yahoo.com", 80, b''))
这是必要的,因为twisted在内部附加了一个尾随斜杠作为字节,即b'/