public virtual async Task <string> RequestGfycatCajax(string gfyId) { var requestRegistration = new CancellationTokenRegistration(); try { string url = @"https://gfycat.com/cajax/get/" + gfyId; HttpWebRequest request = webRequestFactory.CreateGetXhrReqeust(url); requestRegistration = ct.Register(() => request.Abort()); return(await webRequestFactory.ReadReqestToEnd(request).TimeoutAfter(settings.TimeOut)); } finally { requestRegistration.Dispose(); } }