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

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

private LoadUsingRequestAsync ( string uri ) : Task
uri string
Результат Task
        private static async Task<string> LoadUsingRequestAsync(string uri) {
            using (var order = KillerOrder.Create((HttpWebRequest)WebRequest.Create(uri), OptionWebRequestTimeout)) {
                var request = order.Victim;
                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.Timeout = OptionWebRequestTimeout;

                string result;
                using (var response = (HttpWebResponse)await request.GetResponseAsync()) {
                    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 = await reader.ReadToEndAsync();
                                }
                            }
                        } else {
                            using (var reader = new StreamReader(stream, Encoding.UTF8)) {
                                result = await reader.ReadToEndAsync();
                            }
                        }
                    }
                }

                if (OptionSaveResponses) {
                    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;
            }
        }