Een keuzelijst kan honderd proxy's tonen terwijl TIdHTTP dezelfde blijft gebruiken. Een rij selecteren verandert de interface; het volgende verzoek verandert pas van route nadat het geselecteerde eindpunt de configuratie van de HTTP-client bereikt.

Voor openbare HTTP-downloads kunnen vermeldingen uit de HTTP-proxylijst kandidaateindpunten leveren. Houd een host en een geheel getal als poort achter elke getoonde vermelding. Wanneer de selectie wordt geaccepteerd, pas beide toe voordat de download begint:

IdHTTP1.ProxyParams.ProxyServer := ChosenHost;
IdHTTP1.ProxyParams.ProxyPort := ChosenPort;
Page := IdHTTP1.Get(TargetURL);

Dit fragment gaat uit van een niet-actieve client, een gevalideerd eindpunt en de bestaande variabelen van de applicatie. De doel-URL blijft de website. Het proxyhostveld neemt een host, niet de website-URL of een weergavelabel.

Een selectie heeft drie mogelijke uitkomsten nodig

  • Een geldige proxyselectie levert een host en een poort van 1 tot en met 65535.
  • Een expliciete Direct-keuze wist de proxyhost voor het volgende verzoek.
  • Een ongeldige of ontbrekende selectie laat de huidige configuratie intact en vraagt de gebruiker die te corrigeren.

Die uitkomsten gescheiden houden voorkomt dat een gedeselecteerde rij het volgende verzoek onverwacht rechtstreeks verstuurt. Schakel de verzoekknop uit zolang een nieuwe keuze onvolledig is.

Als eindpunten als tekst binnenkomen, parseer en valideer ze dan voordat u een van beide eigenschappen wijzigt. Met TryStrToInt kan de interface een slechte poort melden zonder een niet-afgevangen conversie-exception. Splitsen bij de eerste dubbele punt is alleen geschikt voor een bewust beperkt hostname-of-IPv4-formaat: een IPv6-literal bevat zijn eigen dubbele punten. Een apart hostveld en poortveld maken de opgeslagen weergave eenvoudiger.

Laat een klik in de interface geen client wijzigen die een werker al gebruikt. Pas de keuze toe tussen bewerkingen, of geef elke gelijktijdige bewerking een eigen geconfigureerde client. De kiezer beheert toekomstige verbindingen; hij kan een gevestigde overdracht niet naar een andere uitgang verplaatsen.

Gerelateerde artikelen