Gosod penawdau procsi gyda HTTPAdapter.proxy_headers Requests
Ehangu HTTPAdapter.proxy_headers ar gyfer maes a ddiffinnir gan y procsi tra'n cadw cynhyrchiad penawdau dilysu procsi presennol Requests.
Ar gyfer penawd a bennir gan weithredwr y procsi, mae Requests yn datgelu HTTPAdapter.proxy_headers fel man trosysgrifo:
from urllib.parse import urlsplit
import requests
from requests.adapters import HTTPAdapter
class TaggedProxy(HTTPAdapter):
def proxy_headers(self, proxy):
headers = super().proxy_headers(proxy)
endpoint = urlsplit(proxy)
if (endpoint.scheme == 'http'
and endpoint.hostname == 'proxy.example'
and endpoint.port == 8080):
headers['X-Proxy-Account'] = 'department-a'
return headers
with requests.Session() as session:
adapter = TaggedProxy()
session.mount('http://', adapter)
session.mount('https://', adapter)
response = session.get(
'https://service.example/data',
proxies={'https': 'http://proxy.example:8080'},
timeout=15,
)
Mae X-Proxy-Account yn enghraifft o faes y mae'r procsi penodol hwn yn ei ddeall, nid yw'n ffordd safonol o ddilysu gyda phob cyfryngydd.
Dechreuwch gyda super().proxy_headers(proxy). Mae Requests yn defnyddio'r dull hwnnw i gynhyrchu Proxy-Authorization pan fo'r URL yn darparu cyfrif Basic. Gall disodli'r canlyniad cyfan golli'r ymddygiad hwnnw.
Mae'r addasydd yn trosglwyddo'r gwerthoedd hyn i ProxyManager urllib3. Ar gyfer twndl HTTPS maent yn cyd-fynd â CONNECT. Mae'r mapio penawdau cais arferol yn disgrifio'r cais cyrchfan diweddarach.
Mae rheolwyr procsi yn cael eu cacheio yn ôl URL y procsi. Peidiwch â thrin y bachyn hwn fel galwad yn ôl heb ei chacheio ar gyfer pob cais busnes i werth sy'n rhaid newid ar bob galwad. Dewiswch berchnogaeth trafnidiaeth yn unol â hynny pan fo marc y cyfrif yn amrywio.
Ar gyfer anfon HTTP plaen, mae angen polisi defnydd arfaethedig y cyfryngydd ar feysydd procsi o hyd. Nid yw penawd yn benodol i'r procsi yn API'r cleient yn warant cyfrinachedd os yw'r procsi yn ei anfon ymlaen.