Header yang ditambahkan ke http.Request.Header menjelaskan permintaan tujuan. Saat HTTPS memakai proxy HTTP, transport lebih dulu melakukan CONNECT. Header permintaan tujuan bukan API konfigurasi umum untuk pertukaran sebelumnya itu.

Untuk header statis yang diwajibkan proxy Anda, konfigurasikan ProxyConnectHeader pada transport:

transport := &http.Transport{
    Proxy: http.ProxyURL(proxyURL),
    ProxyConnectHeader: http.Header{
        "X-Proxy-Account": []string{"example-account"},
    },
}

Di sini proxyURL adalah URL endpoint yang sudah diurai. Header ini bersifat ilustratif dan hanya berguna bila operator proxy mendefinisikan bidang semacam itu.

Untuk nilai yang dipilih per proxy atau tujuan, gunakan GetProxyConnectHeader. Callback yang didokumentasikan menerima URL proxy dan target CONNECT. Bila callback ini bukan nil, bidang statis ProxyConnectHeader diabaikan.

Jaga nilai tetap pada cakupan yang dimaksud. Penanda akun khusus proxy termasuk dalam pertukaran proxy; nilai otorisasi situs web termasuk dalam permintaan tujuan. Jika callback tidak dapat menghasilkan nilai jabat tangan yang diperlukan, kembalikan galatnya alih-alih diam-diam mengirim permintaan yang dikonfigurasi berbeda.

Pengaturan ini menyesuaikan penanganan CONNECT. Pengaturan ini tidak menciptakan protokol autentikasi khusus dan tidak mengubah kebijakan akses layanan proxy.

Artikel terkait