protected override ServiceResponse SendCore(ServiceRequest request, ExecutionContext context) { var req = new HttpRequestMessage(Convert(request.Method), request.BuildRequestUri()); this.SetRequestContent(req, request); this.SetHeaders(req, request); HttpClient client = GetClient(); HttpResponseMessage resp = client.SendAsync(req, HttpCompletionOption.ResponseHeadersRead).Result; return(new ResponseImpl(resp)); }
internal static HttpWebRequest CreateWebRequest(ServiceRequest serviceRequest, ClientConfiguration configuration) { var webRequest = WebRequest.Create(serviceRequest.BuildRequestUri()) as HttpWebRequest; SetRequestHeaders(webRequest, serviceRequest, configuration); SetRequestProxy(webRequest, configuration); if (webRequest.RequestUri.Scheme == "https") { ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult); } return(webRequest); }
protected override IAsyncResult BeginSendCore(ServiceRequest request, ExecutionContext context, AsyncCallback callback, Object state) { var req = new HttpRequestMessage(Convert(request.Method), request.BuildRequestUri()); this.SetRequestContent(req, request); this.SetHeaders(req, request); HttpClient client = GetClient(); var task = client.SendAsync(req, HttpCompletionOption.ResponseHeadersRead); ServiceClientImpl.HttpAsyncResult result = new ServiceClientImpl.HttpAsyncResult(callback, state); task.ContinueWith((resp) => { ServiceResponse serviceResponse = new ResponseImpl(resp.Result); result.Complete(serviceResponse); }); return(result); }