Svar sem berst í gegnum proxy getur skilað hlutfallslegu Location:

Location: ../new/

Nútíma HTTP leyfir URI-tilvísun hér. Leysið hana gagnvart URL-inu sem bjó til svarið. Ef það URL var https://docs.example/catalog/old/, vísar tilvísunin hér að ofan á https://docs.example/catalog/new/. Hýsilnafn proxysins er ekki grunnurinn.

Fyrir venjulegar Python urllib-beiðnir skal nota endurbeiningarhandler þess í stað þess að tengja strengi utan um endapunkt proxysins:

opener = build_opener(ProxyHandler({
    "https": "http://proxy.example:8080",
}))
with opener.open("https://docs.example/catalog/old/",
                 timeout=15) as response:
    final_url = response.geturl()

Fyrir þessa beiðni um opinbera skjöl án proxy-auðkenningar getur HTTP-frambjóðandi úr HTTP-proxylistanum komið í stað dæmisendapunktsins þegar leiðin er leyfð. Klassarnir koma úr urllib.request. Venjulegur handler hans fylgir studdum endurbeiningum innan sinna marka. final_url lýsir endanlegu URL auðlindarinnar, ekki milliliðnum sem notaður var til að ná henni.

Leysið fyrst, veljið síðan næstu leið

Endurbeining getur breytt áfangastaðarhýsilnum eða skemanu. Því þarf proxy-stefna sem byggir á áfangastað að meta það nýja URL líka. Leið sem virkaði fyrir fyrsta hýsilinn er kannski ekki leiðin fyrir þann næsta.

Þegar þú útfærir meðhöndlun endurbeininga sjálfur skaltu nota URI-tilvísunarleysingu með meðhöndlun punkthluta. Haltu aðferðarreglum raunverulega stöðukóðans og settu endurbeiningarmörk. Að bæta Location við hýsilnafn kemur ekki í stað þess leysialgríms.

Ef endurbeining mistekst skaltu varðveita umbeðið URL, stöðu svarsins, Location-gildið og leysta næsta URL. Þessi fjögur gildi sýna venjulega hvort mistökin tengjast URL-smíðinni eða tengingunni sem reynd var á eftir.

Tengdir greinar