Ένα πλαίσιο λίστας μπορεί να εμφανίζει εκατό proxy, ενώ το TIdHTTP συνεχίζει να χρησιμοποιεί το ίδιο. Η επιλογή μιας γραμμής αλλάζει τη διεπαφή· το επόμενο αίτημα αλλάζει διαδρομή μόνο αφού το επιλεγμένο τελικό σημείο φτάσει στη διαμόρφωση του πελάτη HTTP.

Για δημόσιες λήψεις HTTP, οι καταχωρίσεις από τη λίστα proxy HTTP μπορούν να παρέχουν υποψήφια τελικά σημεία. Κρατήστε έναν κεντρικό υπολογιστή και μια ακέραια θύρα πίσω από κάθε καταχώριση που εμφανίζεται. Όταν η επιλογή γίνει αποδεκτή, εφαρμόστε και τα δύο πριν ξεκινήσει η λήψη:

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

Αυτό το απόσπασμα προϋποθέτει ανενεργό πελάτη, επικυρωμένο τελικό σημείο και τις υπάρχουσες μεταβλητές της εφαρμογής. Το URL προορισμού παραμένει ο ιστότοπος. Το πεδίο κεντρικού υπολογιστή του proxy δέχεται κεντρικό υπολογιστή, όχι το URL του ιστότοπου ούτε μια ετικέτα εμφάνισης.

Μια επιλογή χρειάζεται τρία πιθανά αποτελέσματα

  • Μια έγκυρη επιλογή proxy παρέχει κεντρικό υπολογιστή και θύρα από 1 έως 65535.
  • Μια ρητή επιλογή Direct καθαρίζει τον κεντρικό υπολογιστή του proxy για το επόμενο αίτημα.
  • Μια μη έγκυρη ή απούσα επιλογή αφήνει τη τρέχουσα διαμόρφωση ανέπαφη και ζητά από τον χρήστη να τη διορθώσει.

Το να κρατάτε αυτά τα αποτελέσματα ξεχωριστά εμποδίζει μια αποεπιλεγμένη γραμμή να στείλει απροσδόκητα το επόμενο αίτημα απευθείας. Απενεργοποιήστε το κουμπί αιτήματος όσο μια νέα επιλογή είναι ημιτελής.

Αν τα τελικά σημεία φτάνουν ως κείμενο, αναλύστε τα και επικυρώστε τα πριν αλλάξετε οποιαδήποτε από τις δύο ιδιότητες. Το TryStrToInt επιτρέπει στη διεπαφή να αναφέρει μια κακή θύρα χωρίς μη πιασμένη εξαίρεση μετατροπής. Ο διαχωρισμός στην πρώτη διπλή τελεία είναι κατάλληλος μόνο για μια σκόπιμα περιορισμένη μορφή hostname-ή-IPv4: ένα literal IPv6 περιέχει δικές του διπλές τελείες. Ένα ξεχωριστό πεδίο κεντρικού υπολογιστή και πεδίο θύρας απλοποιούν την αποθηκευμένη αναπαράσταση.

Μην αφήνετε ένα κλικ στη διεπαφή να τροποποιεί έναν πελάτη που χρησιμοποιεί ήδη ένας εργαζόμενος. Εφαρμόστε την επιλογή μεταξύ λειτουργιών ή δώστε σε κάθε ταυτόχρονη λειτουργία τον δικό της διαμορφωμένο πελάτη. Ο επιλογέας ελέγχει μελλοντικές συνδέσεις· δεν μπορεί να μετακινήσει μια εδραιωμένη μεταφορά σε άλλη έξοδο.

Σχετικά άρθρα