Pune antetele CONNECT din Go pe Transport
Trimite un antet cerut de un proxy HTTP în timpul CONNECT fără a-l pune pe cererea către destinație.
Un antet adăugat la http.Request.Header descrie cererea către destinație. Când HTTPS folosește un proxy HTTP, transportul efectuează mai întâi CONNECT. Antetele cererii către destinație nu sunt un API general de configurare pentru acel schimb anterior.
Pentru un antet static cerut de proxy, configurează ProxyConnectHeader transportului:
transport := &http.Transport{
Proxy: http.ProxyURL(proxyURL),
ProxyConnectHeader: http.Header{
"X-Proxy-Account": []string{"example-account"},
},
}Aici proxyURL este URL-ul endpointului analizat. Antetul este ilustrativ și este util doar când operatorul proxy-ului definește un astfel de câmp.
Pentru o valoare aleasă per proxy sau destinație, folosește GetProxyConnectHeader. Funcția de apel documentată primește URL-ul proxy-ului și ținta CONNECT. Când această funcție nu este nil, câmpul static ProxyConnectHeader este ignorat.
Păstrează valorile în domeniul prevăzut. Un marcaj de cont doar pentru proxy aparține schimbului cu proxy-ul; o valoare de autorizare a unui site aparține cererii către destinație. Dacă o funcție de apel nu poate produce valoarea de handshake necesară, returnează eroarea ei în loc să trimiți în tăcere o cerere configurată altfel.
Aceste setări personalizează tratarea CONNECT. Ele nu inventează un protocol de autentificare propriu și nu schimbă politica de acces a serviciului proxy.