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

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

private LoadUsingRequest ( string uri ) : string
uri string
Результат string
        private static string LoadUsingRequest(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;

            string 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)) {
                            using (var reader = new StreamReader(deflateStream, Encoding.UTF8)) {
                                result = reader.ReadToEnd();
                            }
                        }
                    } else {
                        using (var reader = new StreamReader(stream, Encoding.UTF8)) {
                            result = reader.ReadToEnd();
                        }
                    }
                }
            }

            if (!OptionSaveResponses) return result;

            var filename = FilesStorage.Instance.GetFilename(@"Logs",
                                                             $"Dump_{Regex.Replace(uri.Split('/').Last(), @"\W+", "_")}.json");
            if (!File.Exists(filename)) {
                File.WriteAllText(FilesStorage.Instance.GetFilename(filename), result);
            }
            return result;
        }