transport := http.DefaultTransport.(*http.Transport).Clone()
transport.Proxy = http.ProxyURL(proxyURL)
transport.OnProxyConnectResponse = func(
    _ context.Context,
    _ *url.URL,
    _ *http.Request,
    response *http.Response,
) error {
    observeConnect(response.StatusCode, response.Header.Get("X-Proxy-Region"))
    return nil
}
client := &http.Client{Transport: transport}

ניצט context, net/http און net/url; די סטאַנדאַרט טיפּ-דערקלערונג נעמט אָן אַז דער טראַנספּאָרט בלײַבט אינסטאַלירט. proxyURL ווערט פּאַרסירט, און observeConnect מוז זײַן זיכער מיט קאָנקורענץ. פֿאַר דערלויבטע פּובליקע HTTPS פּרובֿן פֿאַרזאָרגט ליסטע פֿון HTTP פּראָקסי קאַנדידאַטן פֿאַר דעם פּראָקסי URL.

דער קאַלבאַק לויפֿט פֿאַר מען פּרובֿט CONNECT פֿאַר אַ געראָטן 200, דערפֿאַר קען ער אויך באַאַכטן 407. Nil פֿירט ווײַטער די נאָרמאַלע פּריפֿונג און נעמט נישט אָן אַ אָפּגעוואָרפֿענעם טונעל; אַ טעות מאַכט די פֿאָדערונג דורכפֿאַלן.

X-Proxy-Region איז אַ בײַשפּיל וואָס דער פּראָווײַדער דעפֿינירט. לייענט דאָ סטאַטוס און העדערס און לאָזט די פּאַסידקייט פֿון קערפּער און סאָקעט בײַ Transport, וואָס באַהאַנדלט דערנאָך דעם TLS פֿון דער דעסטינאַציע.

דאָס באַאַכט דעם אויפֿשטעלן פֿון אַ נײַעם טונעל, נישט יעדע פֿאָדערונג. אַ ווידער-בנוצטע פֿאַרבינדונג האָט נישט קיין נײַעם CONNECT ענטפֿער, און דער ענטפֿער פֿון דער וועבזײַט האָט באַזונדערע העדערס.

פֿאַרבונדענע אַרטיקלען