1
from pprint import pformat
3
from twisted.internet import reactor
4
from twisted.internet.defer import Deferred
5
from twisted.internet.protocol import Protocol
6
from twisted.web.client import Agent
7
from twisted.web.http_headers import Headers
9
class BeginningPrinter(Protocol):
10
def __init__(self, finished):
11
self.finished = finished
12
self.remaining = 1024 * 10
14
def dataReceived(self, bytes):
16
display = bytes[:self.remaining]
17
print 'Some data received:'
19
self.remaining -= len(display)
21
def connectionLost(self, reason):
22
print 'Finished receiving body:', reason.getErrorMessage()
23
self.finished.callback(None)
25
agent = Agent(reactor)
28
'http://example.com/',
29
Headers({'User-Agent': ['Twisted Web Client Example']}),
32
def cbRequest(response):
33
print 'Response version:', response.version
34
print 'Response code:', response.code
35
print 'Response phrase:', response.phrase
36
print 'Response headers:'
37
print pformat(list(response.headers.getAllRawHeaders()))
39
response.deliverBody(BeginningPrinter(finished))
41
d.addCallback(cbRequest)
43
def cbShutdown(ignored):