Beispiel #1
0
        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;
 }
Beispiel #6
0
        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;
        }
Beispiel #7
0
 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);
        }
Beispiel #9
0
        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);
        }
Beispiel #10
0
        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");
 }
Beispiel #12
0
 /// <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");
 }
Beispiel #13
0
 public HttpClient CreateClient()
 {
     return(_msHttpClientFactory.CreateClient());
 }