Go-യുടെ HTTP ട്രാൻസ്പോർട്ട് ഇഷ്ടാനുസൃതമാക്കുമ്പോൾ ProxyFromEnvironment നിലനിർത്തുക
ട്രാൻസ്പോർട്ട് ടൈംഔട്ടുകളോ കണക്ഷൻ പൂളുകളോ ഇഷ്ടാനുസൃതമാക്കുമ്പോൾ Go-യുടെ എൻവയോൺമെന്റ് പ്രോക്സി തിരഞ്ഞെടുപ്പ് നിലനിർത്തുക, ഡിഫോൾട്ട് പൂജ്യം മൂല്യമുള്ള Proxy ഫീൽഡ് കൊണ്ട് മാറ്റുന്നതിന് പകരം.
Go-യുടെ സ്റ്റാൻഡേർഡ് DefaultTransport, Proxy-യെ ProxyFromEnvironment-ലേക്ക് സജ്ജമാക്കുന്നു. വെവ്വേറെ നിർമ്മിച്ച &http.Transport{}-ന് nil Proxy ഫങ്ക്ഷൻ ഉള്ളതിനാൽ അത് പ്രോക്സി തിരഞ്ഞെടുക്കുന്നില്ല.
ടൈംഔട്ട് മാറ്റാൻ മാത്രം ട്രാൻസ്പോർട്ട് ചേർത്തതിന് ശേഷമാണ് ഈ വ്യത്യാസം പ്രത്യക്ഷപ്പെടാവുന്നത്. സ്റ്റാൻഡേർഡ് ഡിഫോൾട്ട് ഇപ്പോഴും ഇൻസ്റ്റാൾ ചെയ്തിരിക്കുന്നുവെങ്കിൽ അത് ക്ലോൺ ചെയ്ത് ആവശ്യമായ ഫീൽഡ് മാറ്റുക:
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 അഭ്യർത്ഥനയുടെയും സുരക്ഷ മാറ്റും.