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