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)); } }
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)))); }
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)); } }
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)); }