ProxyAgent تېز ئۇلىنالايدۇ، ئاندىن ئىنكاس بەدىنىنى چەكسىز ساقلايدۇ. ئۇنىڭ proxy ئاخىرلاش نۇقتىسىنىڭ ئۇلىنىش ۋاقتى چېكى بۇ كېيىنكى ساقلاشنى تەسۋىرلىمەيدۇ.

Agent قۇرغاندا ئاخىرلاش نۇقتىسىدا ئۇلىنىش چېكى بەلگىلەڭ. تۆۋەندىكى ئاممىۋى HTTP تەلەپ ئۈچۈن، ئاممىۋى ۋاسىتىچىلەر رۇخسەت قىلىنسا، HTTP proxy تىزىملىكىدىن دەلىللەنمىگەن نامزات ئادرېسنى ئالماشتۇرالايدۇ:

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 ۋە سەپلەنگەن agent بار دەپ پەرەز قىلىدۇ. ProxyAgent نىڭ تەلەپ Deferred ى ئىنكاس ئوبيېكتى بېرىدۇ؛ readBody بەدەننىڭ Deferred نى قايتۇرىدۇ. ئۇنى callback دىن قايتۇرغاندا زەنجىر بۇ مەشغۇلاتنىمۇ ساقلايدۇ.

ئورۇن مۇھىم. Twisted addTimeout نى ئۇنىڭدىن بۇرۇن قۇرۇلغان callback لار ۋەكىللىك قىلىدىغان خىزمەتكە قوللىنىدۇ. كېيىن بەدەن ئوقۇغۇچى قوشسا باشقا چېگرا تەسۋىرلىنىدۇ. بۇ تەرتىپتە ۋاقىت ئۆلچىگۈچ addTimeout چاقىرىلغاندا باشلىنىدۇ ۋە شۇ زەنجىردىكى ساقلىنىۋاتقان تەلەپ بىلەن بەدەن خىزمىتىنى ئۆز ئىچىگە ئالىدۇ.

چوڭ ياكى چەكسىز بەدەنلەر ئۈچۈن ئېقىم ئىستېمالچىسى ئىشلىتىڭ ۋە ئۇنىڭ تاماملىنىشىنى شۇنداق ئىپادىلەڭ. خېرىدار تەرەپ مۇددىتى ئەپنىڭ قانچىلىك ساقلايدىغانلىقىنى چەكلەيدۇ؛ ئۇ proxy نىڭ ئۆزىنىڭ يۇقىرى ئېقىم ئۇلىنىش ۋاقتى چېكىنى قايتا سەپلىمەيدۇ.

مۇناسىۋەتلىك ماقالىلەر