public async Task DoWorkAsync() { using (HttpClient hc = new HttpClient()) { Uri uri = new Uri("https://raw.githubusercontent.com/H-Viewer-Sites/Index/master/sites/wnacg.txt"); string s1 = await hc.GetStringAsync(uri); if (!string.IsNullOrEmpty(s1)) { site = JsonConvert.DeserializeObject <Site>(s1); if (site != null) { int page = 0; ParseUrl(site.indexUrl); currUrl = site.indexUrl; string url; if (CurrentPage == StartPage) { url = currUrl.Replace("{pageStr:(.*?{.*?}.*?)}", "") .Replace("{page:" + StartPage + "}", "" + page) .Replace("{keyword:}", keyword); } else { url = currUrl.Replace("{page:" + StartPage + "}", "" + page).Replace("{keyword:}", keyword); if (matchResult.ContainsKey("pageStr")) { url.Replace("{pageStr:(.*?{.*?}.*?)}", (page == StartPage) ? "" : "" + matchResult["pageStr"]); } } string s = null; try { //s = await hc.GetStringAsync(uri); HttpRequestMessage httpRequest = new HttpRequestMessage(HttpMethod.Get, new Uri(url)); httpRequest.Headers.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.116 Safari/537.36"); HttpResponseMessage responseAsync = await hc.SendRequestAsync(httpRequest); responseAsync.EnsureSuccessStatusCode(); IBuffer asyncBuffer = await responseAsync.Content.ReadAsBufferAsync(); byte[] resultByteArray = asyncBuffer.ToArray(); EncodingProvider provider = CodePagesEncodingProvider.Instance; Encoding.RegisterProvider(provider); s = Encoding.GetEncoding("UTF-8").GetString(resultByteArray, 0, resultByteArray.Length); } catch (Exception e) { new MessageDialog(e.StackTrace, e.Message).ShowAsync(); } if (!string.IsNullOrEmpty(s)) { List <Collection> list = new List <Collection>(); RuleParser.GetCollections(list, s, site.indexRule, url, false); gridView.ItemsSource = list; } } else { throw new Exception("Error"); } } else { throw new Exception("Error"); } } }