Go හි CONNECT ශීර්ෂ Transport මත තබන්න
CONNECT අතරතුර අවශ්ය ශීර්ෂය ගමනාන්ත ඉල්ලීම මත නොතබා HTTP ප්රොක්සියට යවන්න.
http.Request.Header වෙත එකතු කරන ශීර්ෂය ගමනාන්ත ඉල්ලීම විස්තර කරයි. HTTPS HTTP ප්රොක්සියක් භාවිතා කරන විට, transport මුලින් CONNECT සිදු කරයි. ගමනාන්ත ඉල්ලීමේ ශීර්ෂ එම පෙර හුවමාරුව සඳහා සාමාන්ය වින්යාස API එකක් නොවේ.
ඔබේ ප්රොක්සියට අවශ්ය ස්ථිතික ශීර්ෂයක් සඳහා transport හි ProxyConnectHeader වින්යාස කරන්න:
transport := &http.Transport{
Proxy: http.ProxyURL(proxyURL),
ProxyConnectHeader: http.Header{
"X-Proxy-Account": []string{"example-account"},
},
}මෙහි proxyURL යනු විග්රහ කළ endpoint URL එකයි. ශීර්ෂය උදාහරණයක් පමණක් වන අතර ප්රොක්සි ක්රියාකරු එවැනි ක්ෂේත්රයක් නිර්වචනය කළ විට පමණක් ප්රයෝජනවත් වේ.
එක් එක් ප්රොක්සිය හෝ ගමනාන්තය අනුව තෝරන අගයක් සඳහා GetProxyConnectHeader භාවිතා කරන්න. ලේඛනගත callback එකට ප්රොක්සි URL එක සහ CONNECT ඉලක්කය ලැබේ. මෙම callback nil නොවන විට, ස්ථිතික ProxyConnectHeader ක්ෂේත්රය නොසලකා හරිනු ලැබේ.
අගයන් අපේක්ෂිත පරාසය තුළ තබන්න. ප්රොක්සිය සඳහා පමණක් වන ගිණුම් සලකුණ ප්රොක්සි හුවමාරුවට අයත් වේ; වෙබ් අඩවි අවසර අගය ගමනාන්ත ඉල්ලීමට අයත් වේ. callback එකට අවශ්ය handshake අගය නිපදවිය නොහැකි නම්, නිහඬව වෙනස් ලෙස වින්යාස කළ ඉල්ලීමක් යැවීම වෙනුවට එහි දෝෂය ලබා දෙන්න.
මෙම සැකසුම් CONNECT හැසිරවීම අභිරුචිකරණය කරයි. ඒවා තමන්ගේම සත්යාපන ප්රොටෝකෝලයක් නිර්මාණය නොකරන අතර ප්රොක්සි සේවාවේ ප්රවේශ ප්රතිපත්තිය වෙනස් නොකරයි.