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