Beispiel #1
0
        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;
                    }
                }
            );
        }
Beispiel #2
0
        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);
        }