2012-01-30 20 views
7

Python kullanarak bir HTTP yanıtının gövdesini yazdırmaya çalışıyorum.Python Twisted proxy - paketler nasıl engellenir

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() 

Ben localhost'a benim tarayıcı bağlamak: 8080, ben bütün istekleri yerel olarak çalışan Python proxy üzerinden yönlendirilen edildiğini görebilirsiniz

İşte Sofar benim kodudur. Ama nasıl 1) yanıt gövdesini yazdırmak ve 2) yanıt gövdesini tarayıcıya geri göndermeden önce nasıl düzenlerim?

Umarım birisi bana doğru yönde işaret edebilir - lütfen Python için çok yeni olduğumu unutmayın!

cevap

9
bir protokol (sizin durumunuzda proxy.Proxy) arasında dataReceived yöntemini geçersiz kılın ve bu yöntemde veri değişikliği işlemek

: o cevap için

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() 
+0

Selam çok teşekkür. Bir istisna var - Dosya "proxy4.py", çizgi 15, DataReceived içinde \t dönüş super (MyProxy, kendinden) .dataReceived (veri) \t exceptions.TypeError: türü olmalıdır, – Eamorr

+0

kod düzeltildi classobj değil. Hala TypeError'ı yükseltip yükseltmediğini kontrol edebilir misiniz? –

+0

Çok teşekkürler - şimdi çalışıyor ... – Eamorr