Gall ProxyAgent gysylltu'n gyflym ac wedyn aros yn amhenodol am gorff ymateb. Nid yw terfyn amser cysylltu ei bwynt terfyn proxy yn disgrifio'r aros hwnnw wedyn.

Gosodwch derfyn cysylltu ar y pwynt terfyn wrth adeiladu'r asiant. Ar gyfer y cais HTTP cyhoeddus isod, gall ymgeisydd heb ei ddilysu o'r rhestr proxy HTTP ddisodli'r cyfeiriad os caniateir cyfryngwyr cyhoeddus:

endpoint = TCP4ClientEndpoint(reactor, 'proxy.example', 8080,
                              timeout=5)
agent = ProxyAgent(endpoint, reactor=reactor)

Ar gyfer ymateb bach yr ydych am ei gasglu yn y cof, cynhwyswch ddarllen corff yng nghadwyn Deferred cyn ychwanegu'r amserlen:

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

Mae'r darn yn tybio bod gan y cymhwysiad ei reactor a'i asiant wedi'u ffurfweddu'n barod. Mae Deferred cais ProxyAgent yn rhoi gwrthrych ymateb; mae readBody yn rhoi Deferred y corff. Mae ei ddychwelyd o'r callback yn gwneud i'r gadwyn aros am y gweithrediad hwnnw hefyd.

Mae'r lleoliad yn bwysig. Mae Twisted yn cymhwyso addTimeout i'r gwaith y mae'r callbacks a osodwyd o'i flaen yn ei gynrychioli. Byddai ychwanegu darllenydd corff wedyn yn disgrifio ffin wahanol. Yn y drefn hon mae'r amserydd yn dechrau pan elwir addTimeout ac yn cwmpasu'r cais sy'n disgwyl a'r gwaith corff yn y gadwyn honno.

Defnyddiwch ddefnyddiwr ffrwd ar gyfer cyrff mawr neu ddiderfyn a chynrychiolwch ei gwblhau yn yr un modd. Mae amserlen ar ochr y cleient yn cyfyngu pa mor hir y mae eich cymhwysiad yn aros; nid yw'n ailffurfweddu terfyn amser cysylltu ei hun y proxy i fyny'r llif.

Erthyglau cysylltiedig