コード例 #1
0
        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));
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }