Example #1
0
        protected sealed internal override Task <WebResponse> SendAsync(WebRequest request, CancellationToken cancellationToken)
        {
            IHttpWebRequest httpWebRequest = request.AsHttpWebRequest();

            if (httpWebRequest is null)
            {
                return(base.SendAsync(request, cancellationToken));
            }
            else
            {
                return(SendAsync(httpWebRequest, cancellationToken).ContinueWith(t => (WebResponse)t.Result));
            }
        }
Example #2
0
        public static Task <TResult> PutAsync <TResource, TResult>(this WebRequest webRequest, TResource resource,
                                                                   Func <HttpWebResponse, TResult> onSuccess,
                                                                   Func <HttpStatusCode, string, TResult> onWebFailure,
                                                                   Func <string, TResult> onFailure)
        {
            var httpWebRequest = webRequest.AsHttpWebRequest("PUT");

            return(httpWebRequest
                   .GetRequestJson(resource,
                                   () => httpWebRequest.GetResponseAsync(onSuccess, onWebFailure, onFailure),
                                   (code, message) => Task.FromResult(onWebFailure(code, message)),
                                   (whyFailed) => Task.FromResult(onFailure(whyFailed))));
        }
Example #3
0
        protected sealed internal override WebResponse Send(WebRequest request, CancellationToken cancellationToken)
        {
            IHttpWebRequest httpWebRequest = request.AsHttpWebRequest();

            if (httpWebRequest is null)
            {
                return(base.Send(request, cancellationToken));
            }
            else
            {
                return((WebResponse)Send(httpWebRequest, cancellationToken));
            }
        }
Example #4
0
        public static async Task <TResult> GetAsync <TResource, TResult>(this WebRequest webRequest,
                                                                         Func <TResource, TResult> onSuccess,
                                                                         Func <HttpStatusCode, string, TResult> webFailure,
                                                                         Func <string, TResult> failure)
        {
            var httpWebRequest = webRequest.AsHttpWebRequest("GET");

            httpWebRequest.ContentType = "application/json";
            return(await httpWebRequest.GetResponseJsonAsync <TResource, TResult>(
                       (response) => onSuccess(response),
                       webFailure,
                       failure));
        }