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