7

Pythonを使用してHTTP応答の本文を印刷しようとしています。

これが私のコードソファです:

from twisted.web import proxy, http
from twisted.internet import reactor
from twisted.python import log
import sys

log.startLogging(sys.stdout)

class ProxyFactory(http.HTTPFactory):
  protocol=proxy.Proxy

reactor.listenTCP(8080, ProxyFactory())
reactor.run()

ブラウザをlocalhost:8080に接続すると、すべてのリクエストがローカルで実行されているPythonプロキシを介して送信されていることがわかります。しかし、1)応答本文を印刷し、2)ブラウザーに送り返す前に応答本文を編集するにはどうすればよいですか?

誰かが私を正しい方向に向けてくれることを願っています-私はPythonに非常に慣れていないことを覚えておいてください!

4

1 に答える 1

9

プロトコルのdataReceivedメソッド(この場合はproxy.Proxy)をオーバーライドし、そのメソッドでデータの変更を処理します。

from twisted.web import proxy, http
from twisted.internet import reactor
from twisted.python import log
import sys

log.startLogging(sys.stdout)

class MyProxy(proxy.Proxy):
    def dataReceived(self, data):

      # Modify the data here
      print data

      # perform the default functionality on modified data 
      return proxy.Proxy.dataReceived(self, data)

class ProxyFactory(http.HTTPFactory):
  protocol=MyProxy

factory = ProxyFactory()
reactor.listenTCP(8080, factory)
reactor.run()
于 2012-01-30T14:41:47.757 に答える