Pas 'n gekose proxy toe op Delphi se TIdHTTP-kliënt
Verbind 'n Delphi-lyskeuse met TIdHTTP-proxykonfigurasie, met gevalideerde eindpuntwaardes en 'n eksplisiete direkte opsie.
'n Lysblokkie kan honderd proxys wys terwyl TIdHTTP dieselfde een bly gebruik. Om 'n ry te kies verander die koppelvlak; die volgende versoek verander eers van roete nadat die gekose eindpunt die HTTP-kliënt se konfigurasie bereik.
Vir openbare HTTP-aflaaie kan inskrywings uit die HTTP-proxylys kandidaat-eindpunte lewer. Hou 'n gasheer en 'n heelgetalpoort agter elke vertoonde inskrywing. Wanneer die keuse aanvaar word, pas albei toe voordat die aflaai begin:
IdHTTP1.ProxyParams.ProxyServer := ChosenHost;
IdHTTP1.ProxyParams.ProxyPort := ChosenPort;
Page := IdHTTP1.Get(TargetURL);
Hierdie fragment veronderstel 'n ledige kliënt, 'n gevalideerde eindpunt en die program se bestaande veranderlikes. Die teiken-URL bly die webwerf. Die proxy-gasheerveld neem 'n gasheer, nie die webwerf-URL of 'n vertoonetiket nie.
'n Keuse het drie moontlike uitkomste nodig
- 'n Geldige proxykeuse lewer 'n gasheer en 'n poort van 1 tot 65535.
- 'n Eksplisiete Direk-keuse maak die proxy-gasheer leeg vir die volgende versoek.
- 'n Ongeldige of ontbrekende keuse laat die huidige konfigurasie ongeskonde en vra die gebruiker om dit reg te stel.
Om daardie uitkomste apart te hou, verhoed dat 'n gedeselekteerde ry die volgende versoek onverwags direk stuur. Deaktiveer die versoekknoppie terwyl 'n nuwe keuse onvolledig is.
As eindpunte as teks aankom, ontleed en valideer hulle voordat enige van die twee eienskappe verander word. TryStrToInt laat die koppelvlak 'n slegte poort rapporteer sonder 'n onopgevangde omskakelingsfout. Om by die eerste dubbelpunt te splits is net geskik vir 'n doelbewus beperkte gasheernaam-of-IPv4-formaat: 'n IPv6-lettergreep bevat sy eie dubbele punte. 'n Aparte gasheerveld en poortveld maak die gestoorde voorstelling eenvoudiger.
Moenie toelaat dat 'n UI-klik 'n kliënt wysig wat 'n werker reeds gebruik nie. Pas die keuse tussen bewerkings toe, of gee elke gelyktydige bewerking sy eie gekonfigureerde kliënt. Die kieser beheer toekomstige verbindings; dit kan nie 'n gevestigde oordrag na 'n ander uitgang skuif nie.