public static Task<HttpResponseMessage> FollowLinkAsync(this HttpClient httpClient, Link link)
 {
     return httpClient.SendAsync(link.CreateRequest())
         .ContinueWith(t =>
         {
             if (t.IsCompleted && link.HttpResponseHandler != null)
             {
                 return link.HandleResponseAsync(t.Result);
             }
             return t; 
         }).Unwrap();
 }
Example #2
0
 public static Task <HttpResponseMessage> FollowLinkAsync(this HttpClient httpClient, Link link)
 {
     return(httpClient.SendAsync(link.CreateRequest())
            .ContinueWith(t =>
     {
         if (t.IsCompleted && link.HttpResponseHandler != null)
         {
             return link.HandleResponseAsync(t.Result);
         }
         return t;
     }).Unwrap());
 }
        public static Task<HttpResponseMessage> EmbedLinkAsync(this HttpClient httpClient, Link link, IEmbedTarget embedTarget)
        {
            return httpClient.SendAsync(link.CreateRequest())
                .ContinueWith(t =>
                {
                    if (t.Status == TaskStatus.RanToCompletion)
                    {
                        if (link.HttpResponseHandler != null)
                        {
                            return link.HandleResponseAsync(t.Result)
                                       .ContinueWith(t2 =>
                                           embedTarget.EmbedContent(link, t2.Result.Content).ContinueWith(t4 => t2.Result)
                                         ).Unwrap();
                        }
                        return embedTarget.EmbedContent(link, t.Result.Content)
                            .ContinueWith(t3 => t.Result);
                    }

                    return t;
                }).Unwrap();
        }
Example #4
0
        public static Task <HttpResponseMessage> EmbedLinkAsync(this HttpClient httpClient, Link link, IEmbedTarget embedTarget)
        {
            return(httpClient.SendAsync(link.CreateRequest())
                   .ContinueWith(t =>
            {
                if (t.Status == TaskStatus.RanToCompletion)
                {
                    if (link.HttpResponseHandler != null)
                    {
                        return link.HandleResponseAsync(t.Result)
                        .ContinueWith(t2 =>
                                      embedTarget.EmbedContent(link, t2.Result.Content).ContinueWith(t4 => t2.Result)
                                      ).Unwrap();
                    }
                    return embedTarget.EmbedContent(link, t.Result.Content)
                    .ContinueWith(t3 => t.Result);
                }

                return t;
            }).Unwrap());
        }