តម្លៃប្រូកស៊ីធម្មតាដូចជា http://proxy.example:8080 គឺជា URL។ clientFromString របស់ Twisted ទទួលយកការពិពណ៌នា endpoint ដូចជា tcp:host=proxy.example:port=8080។ ខ្សែអក្សរទាំងពីរពិពណ៌នាព័ត៌មានពាក់ព័ន្ធដោយវេយ្យាករណ៍ផ្សេងគ្នា។

ប្រសិនបើកម្មវិធីទទួលយក URL ប្រូកស៊ី HTTP ធម្មតា សូមញែកវាមុនពេលបង្កើត endpoint៖

import os
from urllib.parse import urlsplit
from twisted.internet.endpoints import HostnameEndpoint
from twisted.web.client import ProxyAgent

proxy = urlsplit(os.environ['http_proxy'])
if proxy.scheme != 'http' or not proxy.hostname:
    raise ValueError('Expected an HTTP proxy URL')
port = proxy.port if proxy.port is not None else 80
endpoint = HostnameEndpoint(reactor, proxy.hostname, port, timeout=5)
agent = ProxyAgent(endpoint, reactor=reactor)

ផ្នែកកូដសន្មតថាកម្មវិធីមាន reactor រួចហើយ។ បញ្ជាក់ច្រកប្រូកស៊ីពិតប្រាកដក្នុងការកំណត់ នៅពេលវាមិនមែនជាលំនាំដើមរបស់ URL HTTP។ បញ្ជីប្រូកស៊ី HTTP ផ្តល់បេក្ខជន endpoint សម្រាប់សំណើ HTTP សាធារណៈដែលបានអនុញ្ញាតដោយគ្មានគណនីប្រូកស៊ី។ HostnameEndpoint ក៏ជៀសវាងការបញ្ចូលឈ្មោះម៉ាស៊ីនទៅក្នុងខ្សែអក្សរកំណត់ផ្សេងទៀតដែលបំបែកដោយសញ្ញាចុចពីរ។

នេះបំប្លែងតែធាតុបញ្ចូលនៃការបញ្ជូនប៉ុណ្ណោះ។ ព័ត៌មានសម្ងាត់ដែលបញ្ចូលក្នុង URL មិនក្លាយជាក្បាលការអនុញ្ញាតតែដោយសារតែម៉ាស៊ីន និងច្រកត្រូវបានញែកនោះទេ។ ផ្តល់ការផ្ទៀងផ្ទាត់ប្រូកស៊ីដែលគាំទ្រតាមការចាំបាច់ តាមរយៈការរៀបចំការផ្ទៀងផ្ទាត់របស់សំណើ។ សម្រាប់គោលដៅ HTTP ធម្មតា និងអន្តរការីដែលផ្តល់ Basic នោះ ក្បាលសំណើ Basic របស់ ProxyAgent ផ្តល់នូវការរៀបចំមួយបែបនេះ។

URL ប្រូកស៊ី HTTPS ត្រូវការការតភ្ជាប់ដែលគាំទ្រ TLS ទៅប្រូកស៊ី។ URL SOCKS ត្រូវការការចរចា SOCKS។ ទាំងពីរមិនត្រូវបានអនុវត្តដោយការបញ្ជូនគ្រោងការណ៍ទាំងនោះទៅការបំប្លែង endpoint HTTP ProxyAgent ធម្មតានោះទេ។

អត្ថបទពាក់ព័ន្ធ