public async Task<string> GetPageAsync(string url, HttpVerb verb, string referrer = null) { var responseText = ""; using (var request = RequestBuilder.Build(url, CommonHeaders(referrer), CookieJar)) { request.Method = verb.ToVerbString(); using (var response = await request.GetResponseAsync().ConfigureAwait(false)) { using (var stream = await response.GetResponseStreamAsync()) { using (var sr = new StreamReader(stream)) { responseText = sr.ReadToEnd(); } } var doc = new HtmlDocument(); doc.LoadHtml(responseText); var scripts = doc.DocumentNode.Descendants("script"); foreach (var s in scripts.Where(s => s.InnerText.Contains("top.location"))) { var newUrl = s.InnerText.Split('=')[1].Trim().Trim(new[] {' ', ';', '"'}); return await GetPageAsync(newUrl, verb).ConfigureAwait(false); } } } return responseText; }
public async Task<Stream> GetVideoAsync(string url, HttpVerb verb) { using (var request = RequestBuilder.Build(url, CommonHeaders(), CookieJar)) { request.Method = verb.ToVerbString(); using (var response = await request.GetResponseAsync().ConfigureAwait(false)) { return await response.GetResponseStreamAsync(); } } }
public async Task<string> UnprotectedProtectedAsssetUrl(string url, HttpVerb verb) { using (var request = RequestBuilder.Build(url, CommonHeaders(), CookieJar, false)) { request.Method = verb.ToVerbString(); using (var response = await request.GetResponseAsync().ConfigureAwait(false)) { return response.Headers["Location"].First(); } } }