private Task<HttpContent> GetContentAsync(Link link) { if (link == null || link.Target == null) return null; link.MakeAbsolute(CurrentLocation); var content = _SemanticsRegistry.GetPreregisteredContent(link); if (content != null) { return Task.Factory.StartNew(() => content); } return _HttpClient.GetAsync(link.Target) .ContinueWith(task => { var response = task.Result; if (response.StatusCode == HttpStatusCode.OK) { return response.Content; } else { Debug.WriteLine("Error retrieving content from link with URI: " + link.Target + " Status: " + response.StatusCode); return null; } } ); }
private void InternalNavigateTo(Link link) { link.MakeAbsolute(CurrentLocation); HttpResponseMessage response; var content = _SemanticsRegistry.GetPreregisteredContent(link); if (content != null) { response = new HttpResponseMessage(HttpStatusCode.OK) { Content = content }; } else { HttpRequestMessage request = link.CreateRequest(); response = _HttpClient.SendAsync(request, HttpCompletionOption.ResponseHeadersRead).Result; } HandleResponse(response, link); }