.NET 6+ 'ਤੇ ServiceStack HttpUtils ਦੀਆਂ ਪ੍ਰੌਕਸੀ ਸੈਟਿੰਗਾਂ
ਇਨੀਸ਼ੀਅਲਾਈਜ਼ੇਸ਼ਨ ਦੌਰਾਨ .NET 6+ ਦੇ ਸਾਂਝੇ ਕਲਾਇਟ ਦੀ ਪ੍ਰੌਕਸੀ ਸੈੱਟ ਕਰੋ; ਬਾਅਦ ਵਿੱਚ ਫੈਕਟਰੀ ਬਦਲਣ ਨਾਲ ਮੌਜੂਦਾ ਕਲਾਇਟ ਨਹੀਂ ਬਦਲਦਾ।
ServiceStack ਦੇ .NET 6+ ਬਿਲਡਾਂ ਵਿੱਚ HTTP Utils ਇੱਕ ਆਲਸੀ ਸਾਂਝਾ HttpClient ਬਣਾਉਂਦਾ ਹੈ। ਐਪਲੀਕੇਸ਼ਨ ਇਨੀਸ਼ੀਅਲਾਈਜ਼ੇਸ਼ਨ ਦੌਰਾਨ, ਪਹਿਲੀ ਹੈਲਪਰ ਕਾਲ ਤੋਂ ਪਹਿਲਾਂ ਇਸਦੀ ਹੈਂਡਲਰ ਫੈਕਟਰੀ ਸੈੱਟ ਕਰੋ:
ServiceStack.HttpUtils.HttpClientHandlerFactory = () =>
new System.Net.Http.HttpClientHandler
{
UseProxy = true,
Proxy = new System.Net.WebProxy("http://proxy.example:8080"),
AutomaticDecompression =
System.Net.DecompressionMethods.Brotli |
System.Net.DecompressionMethods.Deflate |
System.Net.DecompressionMethods.GZip
};ਜੇ ਸਾਂਝਾ ਕਲਾਇਟ ਪਹਿਲਾਂ ਹੀ ਮੌਜੂਦ ਹੈ, ਤਾਂ ਇਹ ਫੈਕਟਰੀ ਬਦਲਣ ਨਾਲ ਇਹ ਦੁਬਾਰਾ ਕਨਫਿਗਰ ਨਹੀਂ ਹੁੰਦਾ। ਬਾਅਦ ਦੀ ਅਸਾਈਨਮੈਂਟ ਅਪ੍ਰਭਾਵੀ ਲੱਗੇ ਤਾਂ ਪਹਿਲੀ ਜਾਂਚ ਇਹੀ ਸਮਾਂ ਹੈ। ਉਸ ਸਾਂਝੇ ਕਲਾਇਟ ਦੇ ਬਣਨ ਤੋਂ ਪਹਿਲਾਂ HTTP ਪ੍ਰੌਕਸੀ ਸੂਚੀ ਵਿੱਚੋਂ HTTP ਐਂਡਪਾਇੰਟ ਜਨਤਕ ਰੂਟ ਲਈ ਚੁਣਿਆ ਜਾ ਸਕਦਾ ਹੈ।
ਪ੍ਰੌਕਸੀ ਖਾਤੇ ਲਈ, ਐਪਲੀਕੇਸ਼ਨ ਦੀ ਕਨਫਿਗਰੇਸ਼ਨ ਰਾਹੀਂ WebProxy.Credentials ਸੈੱਟ ਕਰੋ। HttpClientHandler.UseDefaultCredentials ਸਰਵਰ ਖਾਤੇ ਨਾਲ ਸੰਬੰਧਿਤ ਹੈ ਅਤੇ ਉਸ ਪ੍ਰੌਕਸੀ ਆਬਜੈਕਟ ਦੇ ਕ੍ਰੈਡੈਂਸ਼ੀਅਲ ਆਪਣੇ-ਆਪ ਨਹੀਂ ਭਰਦਾ।
ਪੁਰਾਣਾ HttpWebRequest ਅਤੇ requestFilter ਉਦਾਹਰਨ ਪਿਛਲੇ ਲਾਗੂਕਰਨ ਨੂੰ ਨਿਸ਼ਾਨਾ ਬਣਾਉਂਦਾ ਹੈ। ਨਵੇਂ ਰੂਪ ਵਿੱਚ, ਬੇਨਤੀ ਕਨਫਿਗਰੇਸ਼ਨ ਬੇਨਤੀ ਫੀਲਡ ਕਵਰ ਕਰਦੀ ਹੈ ਜਦੋਂ ਕਿ ਹੈਂਡਲਰ ਕਨੈਕਸ਼ਨ ਰਾਊਟਿੰਗ ਦਾ ਮਾਲਕ ਹੈ।
ਪਹਿਲਾਂ ਤੋਂ ਸਥਾਪਿਤ ਕਸਟਮ-ਕਲਾਇਟ ਫੈਕਟਰੀ ਜਾਂ ਐਪਲੀਕੇਸ਼ਨ ਦੀ HTTP-ਕਲਾਇਟ-ਫੈਕਟਰੀ ਮਾਲਕੀ ਵਿਵਸਥਾ ਰੱਖੋ। ਇਹ ਹੈਂਡਲਰ ਫੈਕਟਰੀ ਸਾਂਝੀ ਨੀਤੀ ਹੈ; ਇੱਕੋ ਸਮੇਂ ਚੱਲਣ ਵਾਲੇ ਅਸੰਬੰਧਿਤ ਰੂਟਾਂ ਲਈ ਵੱਖਰੀ ਮਾਲਕੀ ਵਾਲੇ ਕਲਾਇਟ ਚਾਹੀਦੇ ਹਨ।