public async Task<IActionResult> ChainCall(int? delayInSeconds, bool propagate = false, bool forwardHeaders = true) { var url = $"{_configuration["WebAppBUrl"]}/chaincallb/chaincall?delayInSeconds={delayInSeconds.GetValueOrDefault(0)}&propagate={propagate}"; List<ResponseModel> models = new List<ResponseModel>(); models.Add(new ResponseModel("Service A", "Received request")); models.Add(new ResponseModel("Service A", $" Forwarding request to Service B at url {url}.")); try { HttpRequestMessage message = new HttpRequestMessage(HttpMethod.Get, url); if (forwardHeaders) { message = message.AddOutboundHeaders(Request); } var client = _clientFactory.CreateClient("default"); var productResponse = await client.SendAsync(message); var responseBody = await productResponse.Content.ReadAsStringAsync(); var responses = JsonConvert.DeserializeObject<List<ResponseModel>>(responseBody); models.AddRange(responses); models.Add(new ResponseModel("Service A", " Received response from Service B.")); } catch (Exception e) { models.Add(new ResponseModel("Service A Error", e.ToString())); } //https://github.com/microsoft/mindaro/blob/6f0be147079afd923df1f0268bdcc4e24a0a8eec/samples/BikeSharingApp/Gateway/HttpHelper.cs#L21 return Ok(models); }
public async Task <ActionResult <List <ResponseModel> > > ChainCall(int?delayInSeconds, bool propagate = false) { List <ResponseModel> models = new List <ResponseModel> { new ResponseModel("Service B", "Received request") }; await Task.Delay(delayInSeconds.GetValueOrDefault(0) * 1000); if (!propagate) { return(Ok(models)); } var url = $"{_configuration["WebAppCUrl"]}/chaincallc/chaincall?delayInSeconds={delayInSeconds}"; models.Add(new ResponseModel("Service B", " Forwarding request to Service C.")); HttpRequestMessage message = new HttpRequestMessage(HttpMethod.Get, url).AddOutboundHeaders(Request); var client = _clientFactory.CreateClient("default"); var productResponse = await client.SendAsync(message); var responseBody = await productResponse.Content.ReadAsStringAsync(); var responses = JsonConvert.DeserializeObject <List <ResponseModel> >(responseBody); models.AddRange(responses); models.Add(new ResponseModel("Service B", " Received response from Service C.")); return(Ok(models)); }
protected override async Task ExecuteAsync(CancellationToken stoppingToken) { while (!stoppingToken.IsCancellationRequested) { _logger.LogInformation("Worker running at: {time}", DateTimeOffset.Now); var tokenResult = await _authContext.AcquireTokenAsync("api://md.backend", _credential); Console.WriteLine(tokenResult.AccessToken); var client = _httpClientFactory.CreateClient(); var inboxRequest = new HttpRequestMessage(HttpMethod.Get, " https://localhost:44301/api/email/inbox"); inboxRequest.Headers.Authorization = new AuthenticationHeaderValue("Bearer", tokenResult.AccessToken); var inboxResponse = await client.SendAsync(inboxRequest); _logger.LogInformation(await inboxResponse.Content.ReadAsStringAsync()); var claimsRequest = new HttpRequestMessage(HttpMethod.Get, " https://localhost:44301/api/email/claims"); claimsRequest.Headers.Authorization = new AuthenticationHeaderValue("Bearer", tokenResult.AccessToken); var claimsResponse = await client.SendAsync(claimsRequest); _logger.LogInformation(await claimsResponse.Content.ReadAsStringAsync()); await Task.Delay(5000, stoppingToken); } }
/// <summary> /// Initialiseert een <see cref="OAuthClientCollection"/> vanuit een URL. Downloadt de lijst, parset en valideert deze. /// </summary> /// <param name="url">Een URL waar de lijst kan worden gedownloadet.</param> /// <param name="httpClientFactory">De context voor de download</param> /// <param name="cancellationToken">Een cancellationtoken kan gebruikt worden om een cancellation door te geven.</param> /// <returns>De nieuwe <see cref="OAuthClientCollection"/>.</returns> public static async Task <OAuthClientCollection> FromURLAsync(Uri url, System.Net.Http.IHttpClientFactory httpClientFactory, CancellationToken cancellationToken = default(CancellationToken)) { string data; using (var c = httpClientFactory.CreateClient()) { data = await c.GetStringAsync(url, cancellationToken).ConfigureAwait(false); } return(FromXMLData(data)); }
public CheckTagChanges( System.Net.Http.IHttpClientFactory httpClientFactory, IConfigurationRoot config, ILogger <CheckTagChanges> log, IDockerRegistryClientFactory dockerRegistryClientFactory) { this.httpClient = httpClientFactory.CreateClient(); this.config = config; this.log = log; this.dockerRegistryClientFactory = dockerRegistryClientFactory; }
public GitHubAccountClient(System.Net.Http.IHttpClientFactory clientFactory) { var client = clientFactory.CreateClient(); client.BaseAddress = new Uri("https://api.github.com/"); client.DefaultRequestHeaders.Add("Accept", "application/vnd.github.v3+json"); client.DefaultRequestHeaders.Add("User-Agent", "HttpClient-Example"); Client = client; }
public HttpClientAdapter( ILogger <HttpClientAdapter> logger, IHttpClientFactory httpClientFactory, IConfiguration configuration, IHttpContextAccessor httpContextAccessor ) { _logger = logger; _httpClient = httpClientFactory.CreateClient(); _httpClient.Timeout = TimeSpan.FromMinutes(10); _RegisterScope = configuration["RegisterApi:Scopes"]; _UserScope = configuration["UserApi:Scopes"]; _httpContextAccessor = httpContextAccessor; }
public async Task <TrafficJamsResponse> GetRegionTrafficJamsAsync(int code) { TrafficJamsResponse response = new TrafficJamsResponse(); IDictionary <int, string> regions = await _provider.GetAvailableRegionsAsync(); if (regions.Keys.Contains(code)) { response = await _cache.GetOrAddAsync(code, async regionCode => { var httpClient = _clientFactory.CreateClient(); return(await GetDataForSingleRegionAsync(httpClient, string.Format(_yandexApiTemplate, regionCode, 1000))); }); } return(response); }
private async Task <HttpResponseMessage> SendAsync(string url, string token) { var client = _httpClientFactory.CreateClient("GraphApiHttpClient"); var requestMessage = new HttpRequestMessage(HttpMethod.Get, url); requestMessage.Headers.Authorization = new AuthenticationHeaderValue(_bearerHeaderSchemeName, token); var responseMessage = await client.SendAsync(requestMessage); if (!responseMessage.IsSuccessStatusCode) { throw new UnexpectedStatusCodeException(responseMessage); } if (responseMessage.Content == null) { throw new UnexpectedDataException(nameof(responseMessage.Content)); } return(responseMessage); }
protected override async Task ExecuteAsync(CancellationToken stoppingToken) { while (!stoppingToken.IsCancellationRequested) { _logger.LogInformation("Worker running at: {time}", DateTimeOffset.Now); var tokenResult = await _authContext.AcquireTokenAsync(_azureAdConfig.Resource, _credential); Console.WriteLine(tokenResult.AccessToken); //reading claims for any user var request = new HttpRequestMessage(HttpMethod.Get, $"{_usersApiBaseUrl}/api/users/[email protected]/claims"); request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", tokenResult.AccessToken); var response = await _http.CreateClient().SendAsync(request, stoppingToken); var claims = await response.Content.ReadAsStringAsync(); Console.WriteLine(claims); await Task.Delay(5000, stoppingToken); } }
public GitHubIssuesClient(System.Net.Http.IHttpClientFactory clientFactory) { Client = clientFactory.CreateClient("github_issues"); }
/// <summary> /// Creates a new instance of class. /// </summary> /// <param name="factory">The factory to create the internally kept HttpClient</param> public HttpClient(net.IHttpClientFactory factory) { _client = factory.CreateClient("magic"); }
public HttpClient CreateClient() { return(_msHttpClientFactory.CreateClient()); }