public async Task <EmarsysResponse <TModel> > SendRequest <TModel>(EmarsysClient.Method method, string urlPath, string requestBody = null, CancellationToken cancellationToken = default) { var response = await MakeRequest(method, urlPath, requestBody, cancellationToken); var result = await response.Content.ReadAsStringAsync(); return(JsonSerializer.Deserialize <EmarsysResponse <TModel> >(result, new JsonSerializerOptions { PropertyNameCaseInsensitive = true })); }
private async Task <HttpResponseMessage> MakeRequest(EmarsysClient.Method method, string urlPath, string requestBody = null, CancellationToken cancellationToken = default) { var request = new HttpRequestMessage { Method = new HttpMethod(method.ToString()), RequestUri = new Uri(_client.BaseAddress, urlPath), Content = requestBody == null ? null : new StringContent(requestBody, Encoding.UTF8, DefaultMediaType) }; request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue(DefaultMediaType)); request.Headers.Add(DefaultAuthHeaderName, GetAuthHeader()); return(await _client.SendAsync(request, cancellationToken)); }