Twisted پروکسي غوښتنې ته د هغې د بدن لپاره یوه پایله وټاکئ
د پروکسي پای ټکي د اړیکې مهال حد د Deferred پایلې سره یوځای کړئ چې د کوچني ځواب بدن لوستل هم پوښي.
ProxyAgent کولای شي ژر اړیکه ونیسي او بیا د ځواب بدن لپاره بې حده انتظار وکړي. د هغې د پروکسي پای ټکي د اړیکې مهال حد هغه وروسته انتظار نه څرګندوي.
د اجنټ جوړولو پر مهال په پای ټکي کې د اړیکې حد وټاکئ. لاندې عامه HTTP غوښتنې لپاره، که عامه منځګړي اجازه ولري، د HTTP پروکسي لیست یو ناتایید شوی کاندید کولای شي پته بدله کړي:
endpoint = TCP4ClientEndpoint(reactor, 'proxy.example', 8080,
timeout=5)
agent = ProxyAgent(endpoint, reactor=reactor)
د کوچني ځواب لپاره چې غواړئ په حافظه کې یې ټول کړئ، د پایلې له زیاتولو مخکې په Deferred زنځیر کې د بدن لوستل شامل کړئ:
from twisted.web.client import readBody
d = agent.request(b'GET', b'http://example.com/')
d.addCallback(readBody)
d.addTimeout(10, reactor)
d.addCallback(lambda body: print(len(body)))
d.addErrback(lambda failure: print(failure.getErrorMessage()))
دا ټوټه فرض کوي چې غوښتنلیک لا دمخه خپل reactor او تنظیم شوی اجنټ لري. د ProxyAgent د غوښتنې Deferred یو ځواب شی ورکوي؛ readBody د بدن Deferred بیرته راګرځوي. له callback څخه یې بیرته راګرځول زنځیر اړباسي چې هغه عملیات هم وڅاري.
ځای مهم دی. Twisted addTimeout هغه کار ته پلي کوي چې له هغې مخکې نصب شوي callback یې استازیتوب کوي. وروسته د بدن لوستونکی زیاتول به بله پوله څرګنده کړي. په دې ترتیب کې ټایمر د addTimeout غوښتنې پر مهال پیلېږي او په هغه زنځیر کې انتظار کوونکې غوښتنه او د بدن کار پوښي.
د لویو یا بې حده بدنونو لپاره د جریان مصرفوونکی وکاروئ او بشپړیدل یې په همدې ډول ښکاره کړئ. د کلینټ اړخه پایله محدوده کوي چې ستاسو غوښتنلیک څومره انتظار کوي؛ دا د پروکسي خپل پورته جریان د اړیکې مهال حد بیا تنظیم نه کړي.