Defnyddio IP dirprwy yn Python Requests
Pennwch lwybrau dirprwy fesul cais yn Requests, dewiswch gynllun cywir y pwynt terfyn, a thriniwch derfynau amser a methiannau twnnel HTTPS.
Gyda Requests ar gael yn eich prosiect, pasiwch fap dirprwyon i’r alwad:
import requests
proxies = {
"http": "http://127.0.0.1:8080",
"https": "http://127.0.0.1:8080",
}
response = requests.get(
"https://example.com/",
proxies=proxies,
timeout=(5, 15),
)
response.raise_for_status()
print(response.status_code)
Disodlwch y pwynt terfyn dolen yn ôl â’ch dirprwy gweithredol neu ymgeisydd o’r rhestr dirprwyon HTTP y byddwch yn ei brofi â’r cais hwn. Mae’r allweddi’n disgrifio cynlluniau’r cyrchfannau: http ar gyfer URLau HTTP a https ar gyfer URLau HTTPS. Mae’r gwerthoedd yn disgrifio gwrandäwr y dirprwy. Gallant fod yn bwyntiau terfyn gwahanol os oes angen llwybrau ar wahân ar eich rhwydwaith.
Mae rhoi gwerth dirprwy http:// o dan yr allwedd https yn fwriadol. Mae Requests yn gofyn i’r gwrandäwr HTTP am dwnnel CONNECT ac yna’n sefydlu TLS â’r gyrchfan drwyddo, yn ddarostyngedig i bolisi cyrchfannau a phyrth y dirprwy. Mae newid y gwerth i https:// yn gofyn am TLS â’r dirprwy ei hun; gall fethu os yw’r gwrandäwr yn disgwyl HTTP testun clir.
Ystyr y ddau rif terfyn amser
Mae timeout=(5, 15) yn gosod terfynau amser cysylltu a darllen. Nid yw’n gosod terfyn cyffredinol o bymtheg eiliad. Gall data sy’n cyrraedd yn achlysurol, cyfeiriadau lluosog ac ymdrechion cysylltu ymestyn yr amser a aeth heibio. Nid yw Requests yn darparu terfyn amser cyffredinol os hepgorwch y gosodiad, felly dewiswch derfynau priodol i’r ymateb ac ychwanegwch amser cau ar lefel y rhaglen os oes angen cyllideb amser gyffredinol lem ar y dasg.
Triniwch y methiant yn y cam lle mae’n digwydd
try:
response = requests.get(
"https://example.com/",
proxies=proxies,
timeout=(5, 15),
)
response.raise_for_status()
except requests.exceptions.ProxyError as error:
print("Proxy setup failed:", type(error).__name__)
except requests.exceptions.Timeout:
print("A configured timeout expired")
except requests.exceptions.HTTPError as error:
print("HTTP status:", error.response.status_code)
Gall CONNECT a wrthodwyd godi ProxyError cyn bod ymateb gan y gyrchfan. Daw’r gangen HTTPError ar ôl derbyn ymateb â statws gwall; mae Timeout yn golygu bod terfyn a osodwyd wedi dod i ben. Archwiliwch gadwyni eithriadau sefydlu’n lleol, gan dynnu pwyntiau terfyn sy’n cynnwys manylion mewngofnodi ac URLau preifat cyn eu rhannu.
Gadewch wirio tystysgrifau wedi’i alluogi. Os yw’r rhwydwaith awdurdodedig yn defnyddio CA preifat neu ryng-gipio a reolir, darparwch y deunydd ymddiriedaeth disgwyliedig yn lle analluogi’r gwiriad.
Mae cofnodion penodol fesul cais yn rheoli’r llwybrau a ddarperir yma, ond gall canfod dirprwyon yn yr amgylchedd ddal i effeithio ar gynlluniau sydd wedi’u hepgor. Wrth symud yr alwad i Session y gellir ei hailddefnyddio, penderfynwch sut y dylai newidynnau amgylchedd, rhagosodiadau Session a gosodiadau sy’n eu disodli fesul cais ryngweithio; mae ailddefnyddio cysylltiadau a pholisi llwybro yn ddewisiadau ar wahân.