Ilagay ang mga CONNECT header ng Go sa Transport
Magpadala ng kinakailangang header sa isang HTTP proxy sa panahon ng CONNECT nang hindi ito inilalagay sa kahilingan sa destinasyon.
Ang header na idinaragdag sa http.Request.Header ay naglalarawan ng kahilingan sa destinasyon. Kapag gumagamit ang HTTPS ng HTTP proxy, ginagawa muna ng transport ang CONNECT. Ang mga header ng kahilingan sa destinasyon ay hindi pangkalahatang configuration API para sa naunang palitan na iyon.
Para sa static na header na kailangan ng iyong proxy, i-configure ang ProxyConnectHeader ng transport:
transport := &http.Transport{
Proxy: http.ProxyURL(proxyURL),
ProxyConnectHeader: http.Header{
"X-Proxy-Account": []string{"example-account"},
},
}Dito, ang proxyURL ay ang na-parse na endpoint URL. Ang header ay halimbawa lamang at kapaki-pakinabang lamang kapag tinukoy ng operator ng proxy ang naturang field.
Para sa value na pinipili bawat proxy o destinasyon, gamitin ang GetProxyConnectHeader. Natatanggap ng dokumentadong callback ang proxy URL at ang CONNECT target. Kapag ang callback na ito ay hindi nil, binabalewala ang static na field na ProxyConnectHeader.
Panatilihin ang mga value sa nilalayong saklaw. Ang account marker na para lamang sa proxy ay kabilang sa palitan sa proxy; ang authorization value ng website ay kabilang sa kahilingan sa destinasyon. Kung hindi makagawa ang callback ng kinakailangang handshake value, ibalik ang error nito sa halip na tahimik na magpadala ng kahilingang naka-configure nang iba.
Ini-customize ng mga setting na ito ang paghawak ng CONNECT. Hindi sila nag-imbento ng custom na authentication protocol at hindi binabago ang access policy ng proxy service.