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 ਬੇਨਤੀ ਦੀ ਸੁਰੱਖਿਆ ਬਦਲ ਦੇਵੇਗਾ।