Go ના HTTP ટ્રાન્સપોર્ટને કસ્ટમાઇઝ કરતી વખતે ProxyFromEnvironment રાખો
ટ્રાન્સપોર્ટ ટાઇમઆઉટ અથવા કનેક્શન પૂલ કસ્ટમાઇઝ કરતી વખતે Go ની પર્યાવરણ પ્રોક્સી પસંદગી જાળવી રાખો, ડિફોલ્ટને શૂન્ય મૂલ્યવાળા Proxy ફીલ્ડથી બદલવાને બદલે.
Go નું પ્રમાણભૂત DefaultTransport Proxy ને ProxyFromEnvironment પર સેટ કરે છે. અલગથી બનાવેલ &http.Transport{} માં Proxy ફંક્શન nil હોય છે, જે કોઈ પ્રોક્સી પસંદ કરતું નથી.
ફક્ત ટાઇમઆઉટ બદલવા માટે ટ્રાન્સપોર્ટ ઉમેર્યા પછી આ તફાવત દેખાઈ શકે છે. પ્રમાણભૂત ડિફોલ્ટ હજી પણ સ્થાપિત હોય ત્યારે, તેને ક્લોન કરો અને જરૂરી ફીલ્ડ બદલો:
transport := http.DefaultTransport.(*http.Transport).Clone()
transport.ResponseHeaderTimeout = 15 * time.Second
client := &http.Client{
Transport: transport,
Timeout: 30 * time.Second,
}ક્લોન પર્યાવરણ પ્રોક્સી પસંદગી અને અન્ય ડિફોલ્ટ ટ્રાન્સપોર્ટ સેટિંગ્સ જાળવી રાખે છે. ટાઇપ એસર્શન ધારે છે કે એપ્લિકેશને DefaultTransport ને બીજા RoundTripper સાથે બદલ્યું નથી.
ઇરાદાપૂર્વક શરૂઆતથી બનાવેલ ટ્રાન્સપોર્ટ માટે, જ્યારે તે તેની રૂટિંગ નીતિ હોય ત્યારે Proxy: http.ProxyFromEnvironment સ્પષ્ટ રીતે સેટ કરો. સ્પષ્ટ ProxyURL ફંક્શન અલગ નીતિ વ્યક્ત કરે છે: એક પસંદ કરેલ મધ્યસ્થી.
સમાંતર વિનંતીઓ તેનો ઉપયોગ કરે તે પહેલાં ટ્રાન્સપોર્ટ ગોઠવો, પછી કાર્યભાર માટે તેનો ફરી ઉપયોગ કરો. વહેંચાયેલ ડિફોલ્ટ ઑબ્જેક્ટ બદલવાથી અસંબંધિત ક્લાયન્ટ્સ પર અસર થઈ શકે છે.
કસ્ટમ TLS સેટિંગ્સ અલગ છે. પ્રોક્સી શોધ જાળવવા માટે પ્રમાણપત્ર ચકાસણી બંધ કરવી જરૂરી નથી, અને તે દરેક મેળ ખાતી HTTPS વિનંતીની સુરક્ષા બદલી નાખશે.