using RMWPFUserInterface.Models; using System; using System.Collections.Generic; using System.Configuration; using System.Linq; using System.Net.Http; using System.Net.Http.Headers; using System.Text; using System.Threading.Tasks; namespace RMWPFUserInterface.Helpers { public class APIHelper : IAPIHelper { private HttpClient apiClient; public APIHelper() { InitializeClient(); } private void InitializeClient() { string api = ConfigurationManager.AppSettings["api"]; apiClient = new HttpClient(); apiClient.BaseAddress = new Uri(api); apiClient.DefaultRequestHeaders.Accept.Clear(); apiClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); } public async Task Authenticate(string username, string password) { var data = new FormUrlEncodedContent(new[] { new KeyValuePair("grant_type", "password"), new KeyValuePair("username", username), new KeyValuePair("password", password), }); using (HttpResponseMessage response = await apiClient.PostAsync("/Token", data)) { if (response.IsSuccessStatusCode) { var result = await response.Content.ReadAsAsync(); return result; } else { throw new Exception(response.ReasonPhrase); } } } } }