AcManager.Tools.Helpers.Api.KunosApiProvider.LoadListUsingRequest C# (CSharp) Метод

LoadListUsingRequest() приватный Метод

private LoadListUsingRequest ( string uri ) : AcManager.Tools.Helpers.Api.Kunos.ServerInformation[]
uri string
Результат AcManager.Tools.Helpers.Api.Kunos.ServerInformation[]
        private static ServerInformation[] LoadListUsingRequest(string uri) {
            var request = (HttpWebRequest)WebRequest.Create(uri);
            request.Method = "GET";
            request.UserAgent = InternalUtils.GetKunosUserAgent();
            request.Headers.Add("Accept-Encoding", "gzip");

            if (OptionIgnoreSystemProxy) {
                request.Proxy = null;
            }

            if (OptionForceDisabledCache) {
                request.CachePolicy = _cachePolicy ??
                        (_cachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.NoCacheNoStore));
            }

            request.ContinueTimeout = OptionWebRequestTimeout;
            request.ReadWriteTimeout = OptionWebRequestTimeout;
            request.Timeout = OptionWebRequestTimeout;

            ServerInformation[] result;
            using (var response = (HttpWebResponse)request.GetResponse()) {
                if (response.StatusCode != HttpStatusCode.OK) {
                    throw new Exception($"StatusCode = {response.StatusCode}");
                }

                using (var stream = response.GetResponseStream()) {
                    if (stream == null) {
                        throw new Exception(@"ResponseStream = null");
                    }

                    if (string.Equals(response.Headers.Get("Content-Encoding"), @"gzip", StringComparison.OrdinalIgnoreCase)) {
                        using (var deflateStream = new GZipStream(stream, CompressionMode.Decompress)) {
                            result = ServerInformation.DeserializeSafe(deflateStream);
                        }
                    } else {
                        result = ServerInformation.DeserializeSafe(stream);
                    }
                }
            }
            
            return result;
        }