/// <inheritdoc/>
        SDK.Http.IHttpResponse SDK.Http.ISynchronousHttpClient.Execute(SDK.Http.IHttpRequest request)
        {
            var client = this.CreateClientForRequest(request);

            if (!IsValidBaseUrl(client, request))
            {
                throw new ApplicationException($"Request URI '{request.CanonicalUri.ToString()}' does not match client base URI '{client.BaseUrl}");
            }

            var restRequest = this.adapter.ToRestRequest(this.baseUrl, request);
            var response    = client.Execute(restRequest);

            return(this.adapter.ToHttpResponse(response));
        }
Exemple #2
0
        public RestSharp.IRestRequest ToRestRequest(string baseUrl, SDK.Http.IHttpRequest request)
        {
            var resourcePath = request.CanonicalUri.ToString().Replace(baseUrl, string.Empty);
            var method       = this.ConvertMethod(request.Method);

            var restRequest = new RestSharp.RestRequest(resourcePath, method);

            restRequest.RequestFormat = RestSharp.DataFormat.Json;
            this.CopyHeaders(request.Headers, restRequest);

            if (request.HasBody)
            {
                restRequest.AddParameter(request.BodyContentType, request.Body, RestSharp.ParameterType.RequestBody);
            }

            return(restRequest);
        }
        private RestSharp.IRestClient CreateClientForRequest(SDK.Http.IHttpRequest request)
        {
            var client = new RestSharp.RestClient();

            // Configure default settings
            client.BaseUrl = new Uri(this.baseUrl, UriKind.Absolute);
            client.DefaultParameters.Clear();
            client.Encoding        = Encoding.UTF8;
            client.FollowRedirects = false;
            client.Timeout         = this.connectionTimeout;
            client.UserAgent       = request.Headers?.UserAgent;

            if (this.proxy != null)
            {
                client.Proxy = this.proxy;
            }

            return(client);
        }
 private static bool IsValidBaseUrl(RestSharp.IRestClient client, SDK.Http.IHttpRequest request)
 {
     return(request.CanonicalUri
            .ToString()
            .Contains(client.BaseUrl.ToString()));
 }
        /// <inheritdoc/>
        async Task <SDK.Http.IHttpResponse> SDK.Http.IAsynchronousHttpClient.ExecuteAsync(SDK.Http.IHttpRequest request, CancellationToken cancellationToken)
        {
            var client = this.CreateClientForRequest(request);

            if (!IsValidBaseUrl(client, request))
            {
                throw new ApplicationException($"Request URI '{request.CanonicalUri.ToString()}' does not match client base URI '{client.BaseUrl}");
            }

            var restRequest = this.adapter.ToRestRequest(this.baseUrl, request);
            var response    = await client.ExecuteTaskAsync(restRequest, cancellationToken).ConfigureAwait(false);

            return(this.adapter.ToHttpResponse(response));
        }
 SDK.IdSite.IIdSiteSyncCallbackHandler IApplicationSync.NewIdSiteSyncCallbackHandler(SDK.Http.IHttpRequest request)
 => new DefaultIdSiteSyncCallbackHandler(this.GetInternalDataStore(), request);