private string RequestNewToken()
        {
            var request = _client.CreateRequest(HttpMethod.Post, "identityserver/connect/token");

            request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
            request.Headers.Authorization = new AuthenticationHeaderValue("Basic", UserLogin.GetClientCredentials());
            request.Headers.Host          = _client.UrlApi.Replace("http://", "");
            request.Content = new FormUrlEncodedContent(new Dictionary <string, string>
            {
                { "grant_type", "password" },
                { "username", _client.User.Login },
                { "password", _client.User.Password },
                { "scope", "Agents Monitoring Users" }
            });

            using (var httpClient = new HttpClient())
                using (request)
                    using (var response = httpClient.SendAsync(request).ConfigureAwait(false).GetAwaiter().GetResult())
                    {
                        if (!response.IsSuccessStatusCode)
                        {
                            throw new Exception($"Erro na comunicação com a API, não foi possivel obter o token. status de erro: {response.StatusCode}");
                        }

                        dynamic content = JsonConvert.DeserializeObject(response.Content.ReadAsStringAsync().ConfigureAwait(false).GetAwaiter().GetResult());
                        return(content.access_token.ToString());
                    }
        }
Пример #2
0
        protected async Task <Result <Exception, TResult> > InnerGetAsync <TResult>(string methodPath)
        {
            var httpRequest = _httpCliente.CreateRequest(HttpMethod.Get, methodPath);

            using (httpRequest)
                using (var httpResponse = await _httpCliente.HttpClient.SendAsync(httpRequest))
                {
                    var content = await httpResponse.Content.ReadAsStringAsync();

                    if (httpResponse.IsSuccessStatusCode)
                    {
                        var convert = JsonConvert.DeserializeObject <TResult>(content);
                        return(convert);
                    }
                    return(JsonConvert.DeserializeObject <Exception>(content));
                }
        }