private Task <HttpResponseMessage> CreateRequestAsync(EndpointData endpoint, BaseRequest requestObject, CancellationToken cancellationToken) { HttpRequestMessage requestMessage = new HttpRequestMessage(); // Auth if (endpoint.SecurityType == EndpointSecurityType.ApiKey) { if (requestObject != null) { if (requestObject.ClientKey == null) { requestObject.ClientKey = Key; } } } if (endpoint.Method == HttpMethod.Get) { UriBuilder uriBuilder = new UriBuilder(endpoint.Uri); if (requestObject != null) { uriBuilder.Query = GenerateQueryString(requestObject); } requestMessage.RequestUri = uriBuilder.Uri; } else { requestMessage.RequestUri = endpoint.Uri; if (requestObject != null) { string content = JsonConvert.SerializeObject(requestObject, SerializerSettings); requestMessage.Content = new StringContent(content, Encoding.UTF8, "application/json"); } } requestMessage.Method = endpoint.Method; var task = httpClient.SendAsync(requestMessage, HttpCompletionOption.ResponseHeadersRead, cancellationToken); task.ContinueWith(_ => requestMessage.Dispose()); return(task); }
public Task <T> ProcessRequestAsync <T>(EndpointData endpoint, BaseRequest requestObject = null) where T : class { return(ProcessRequestAsync <T>(endpoint, requestObject, CancellationToken.None)); }
public async Task <T> ProcessRequestAsync <T>(EndpointData endpoint, BaseRequest requestObject, CancellationToken cancellationToken) where T : class { var message = await CreateRequestAsync(endpoint, requestObject, cancellationToken).ConfigureAwait(false); return(await HandleJsonResponseAsync <T>(message).ConfigureAwait(false)); }
public Task <T> ProcessRequestAsync <T>(EndpointData endpoint) where T : class { return(ProcessRequestAsync <T>(endpoint, null, CancellationToken.None)); }