public static string DownloadString(string url) { #if PORTABLE var request = WebRequest.Create(url); request.Method = "GET"; System.Threading.Tasks.Task<WebResponse> task = System.Threading.Tasks.Task.Factory.FromAsync( request.BeginGetResponse, asyncResult => request.EndGetResponse(asyncResult), null); return task.ContinueWith(t => ReadStreamFromResponse(t.Result)).Result; #else using (var client = new FastWebClient() {Timeout = 1500}) { client.Encoding = Encoding.UTF8; return client.DownloadString(url); } #endif }
private async Task _findBestQualityThumbnail() { //response from ytime varies on the user agent, usually 404 is thrown on invalid, but the default return is checked either way. has unique size of 120x80. using (var fw = new FastWebClient()) foreach (var qurl in qualitypics) { var u = string.Format(qurl, _key); byte[] data; try { data = await fw.DownloadDataTaskAsync(u); } catch (WebException we) when ((we.Response as HttpWebResponse)?.StatusCode==HttpStatusCode.NotFound) { continue; } using (var ms = new MemoryStream(data)) using (var img = Image.FromStream(ms)) if (img.Size.Width == 120 && img.Width == 80) //Its the small default which makes it invalid continue; _thumbnail = u; break; } }
public static async Task<string> DownloadStringAsync(string url) { using (var client = new FastWebClient() {Timeout = 1500}) { client.Encoding = Encoding.UTF8; return await client.DownloadStringTaskAsync(new Uri(url)); } }