Εφόσον το go-ieproxy είναι ήδη διαθέσιμο και το τυπικό προεπιλεγμένο transport είναι ακόμη εγκατεστημένο, προσαρτήστε τη συνάρτηση διαμεσολαβητή που λαμβάνει υπόψη το αίτημα:

transport := http.DefaultTransport.(*http.Transport).Clone()
transport.Proxy = ieproxy.GetProxyFunc()
client := &http.Client{
    Transport: transport,
    Timeout: 30 * time.Second,
}

Εισαγάγετε τα net/http, time και github.com/mattn/go-ieproxy και κάντε τα αιτήματα του φόρτου εργασίας μέσω του client. Η δήλωση τύπου απαιτεί το DefaultTransport να παραμείνει ένα http.Transport.

Το GetProxyFunc καλύπτει στατικές ρυθμίσεις, ένα ρητό σενάριο αυτόματης διαμόρφωσης και πλήρη αυτόματη ανακάλυψη. Η αναζήτησή του στα Windows χρησιμοποιεί τη διαμόρφωση του τρέχοντος χρήστη και καταφεύγει στο μητρώο αν η πρώτη κλήση API αποτύχει.

Το OverrideEnvWithStaticProxy κάνει διαφορετική επιλογή: εξάγει χειροκίνητες ρυθμίσεις και δεν μπορεί να διατηρήσει αυτόματες αποφάσεις ανά προορισμό. Χρησιμοποιήστε αυτή τη μετατροπή μόνο για σκόπιμα στατική πολιτική.

Για μια υπηρεσία Windows, ο τρέχων χρήστης μπορεί να διαφέρει από τον χρήστη της επιφάνειας εργασίας του οποίου το πρόγραμμα περιήγησης λειτουργεί. Ελέγξτε τον λογαριασμό υπηρεσίας και τον πραγματικό προορισμό όταν συγκρίνετε το αποτέλεσμα. Η ανακάλυψη παρέχει έναν υποψήφιο διαδρομής, όχι έλεγχο ταυτότητας ή εγγύηση ότι το τελικό σημείο είναι προσβάσιμο.

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