public async Task <string> GetStringAsync(string uri, string authorizationToken = null, string authorizationMethod = "Bearer") { var requestMessage = new HttpRequestMessage(HttpMethod.Get, uri); if (authorizationToken != null) { requestMessage.Headers.Authorization = new AuthenticationHeaderValue(authorizationMethod, authorizationToken); } using (var client = JyHttpClientFactory.CreateClient(new Uri(uri))) { var response = await client.SendAsync(requestMessage); return(await response.Content.ReadAsStringAsync()); } }
public async Task <HttpResponseMessage> DeleteAsync(string uri, string authorizationToken = null, string requestId = null, string authorizationMethod = "Bearer") { var requestMessage = new HttpRequestMessage(HttpMethod.Delete, uri); if (authorizationToken != null) { requestMessage.Headers.Authorization = new AuthenticationHeaderValue(authorizationMethod, authorizationToken); } if (requestId != null) { requestMessage.Headers.Add("x-requestid", requestId); } using (var client = JyHttpClientFactory.CreateClient(new Uri(uri))) { return(await client.SendAsync(requestMessage)); } }
private async Task <HttpResponseMessage> DoPostPutAsync <T>(HttpMethod method, string uri, T item, string authorizationToken = null, string requestId = null, string authorizationMethod = "Bearer") { if (method != HttpMethod.Post && method != HttpMethod.Put) { throw new ArgumentException("Value must be either post or put.", nameof(method)); } // a new StringContent must be created for each retry // as it is disposed after each call var requestMessage = new HttpRequestMessage(HttpMethod.Post, uri); requestMessage.Content = new StringContent(JsonConvert.SerializeObject(item), System.Text.Encoding.UTF8, "application/json"); if (authorizationToken != null) { requestMessage.Headers.Authorization = new AuthenticationHeaderValue(authorizationMethod, authorizationToken); } if (requestId != null) { requestMessage.Headers.Add("x-requestid", requestId); } using (var client = JyHttpClientFactory.CreateClient(new Uri(uri))) { var response = await client.SendAsync(requestMessage); // raise exception if HttpResponseCode 500 // needed for circuit breaker to track fails if (response.StatusCode == HttpStatusCode.InternalServerError) { throw new HttpRequestException(); } return(response); } }