Exemplo n.º 1
0
        public async Task <string> PerformRequestAsync(RequestBaseBase request, CancellationToken cancellationToken = default)
        {
            if (Settings.ProxyConfigurationInjector != null)
            {
                throw new NotImplementedException($"PerformRequestAsync not implemented yet with {nameof(Settings.ProxyConfigurationInjector)}");
            }

            if (request.RequiresApiToken)
            {
                request.ApiToken = Settings.ApiToken;
            }
            if (request.RequiresServiceId)
            {
                request.ServiceId = Settings.ServiceID;
            }

            var httpRequestContent = new FormUrlEncodedContent(request.GetParametersDictionary(Settings.ServiceID));

            httpRequestContent.Headers.ContentType.MediaType = WWWUrlContentType;

            using var httpRequest = new HttpRequestMessage(HttpMethod.Post, $"{Settings.Endpoint}/{request.Url}")
                  {
                      Content = httpRequestContent,
                  };

            httpRequest.Headers.Accept.Clear();
            httpRequest.Headers.Accept.ParseAdd(ApplicationJsonContentType);
            httpRequest.Headers.UserAgent.Add(new ProductInfoHeaderValue("PAYNL_SDK_DOTNET_CORE", ClientVersion));

            var response = await InternalHttpClient.SendAsync(httpRequest, cancellationToken)
                           .ConfigureAwait(false);

            var responseContent = await response.Content.ReadAsStringAsync().ConfigureAwait(false);

            request.RawResponse = responseContent;

            return(responseContent);
        }
 public UserColoursService(InternalHttpClient httpClient)
 {
     _httpClient = httpClient;
 }