/// <summary> /// Effectue une requete POST de maniere aynchrone sur l'API /// </summary> /// <param name="api">les donnees sur l'api, adresse du serveur etc...</param> /// <returns>la reponse de la requete</returns> public async Task <string> PostUser(Config.Api api) { string guid = GetUserGUID(Environment.UserName).ToString("D"); Log.Info("Requete POST, Annonce de l'utilisateur ayant un GUID: " + guid); //Connexion au serveur string addressServer = Server.protocol + @"://" + Server.host + @":" + Server.port + @"/"; HttpClient httpClient = ConnectAPI(addressServer); //Connexion a l'api // On recupere le GUID de la machine pour recuperer la bonne url string url = api.ressource.user + @"/" + guid; Log.Debug("Url de la ressource: " + url); string responseBody = null; try { var data = ""; StringContent queryString = new StringContent(data); HttpResponseMessage response = await httpClient.PostAsync(url, queryString).ConfigureAwait(false); response.EnsureSuccessStatusCode(); responseBody = await response.Content.ReadAsStringAsync(); } catch (Exception e) { Log.Error("Erreur requete POST: " + e.Message + e.GetType().ToString()); Context.NotifyUser("ERROR", "Connexion impossible", "Vous n'etes pas connecté au serveur", false); return(null); } return(responseBody); }
/// <summary> /// Requete GET a l'api pour recuperer la configuration de l'application au format JSON /// </summary> /// <param name="api">l'API ou faire les requetes</param> /// <param name="checksum">le checksum de la conf</param> /// <returns>la config de l'application</returns> public async Task <Config> GetConfigJson(Config.Api api, string checksum) { //TODO Voir si je rajout l'ip IPV4 en c# du client //Connexion au serveur string addressServer = Server.protocol + @"://" + Server.host + @":" + Server.port + @"/"; HttpClient httpClient = ConnectAPI(addressServer); //Connexion a l'api // On recupere le GUID de la machine pour recuperer la bonne url string url = api.ressource.config + @"?checksum=" + checksum; Log.Debug("Url de la ressource: " + url); Config config = null; try { // test si l'url est valide HttpResponseMessage response = await httpClient.GetAsync(url).ConfigureAwait(false); response.EnsureSuccessStatusCode(); string json = await response.Content.ReadAsStringAsync().ConfigureAwait(false); config = JsonConvert.DeserializeObject <Config>(json); } catch (Exception e) { Log.Error("Erreur requete GET: " + e.Message + e.GetType().ToString()); return(null); } return(config); }
/// <summary> /// Effectue une requete GET de maniere aynchrone sur l'API pour recuperer les donnees sur l'utilisateur /// </summary> /// <param name="api">les donnees sur l'api, adresse du serveur etc...</param> /// <returns>l'objet FaxUser</returns> public async Task <User> GetUser(Config.Api api) { string guid = GetUserGUID(Environment.UserName).ToString("D"); Log.Info("Requete GET Verification de l'authentification de l'utilisateur ayant un GUID:" + guid); // Connexion au serveur string addressServer = Server.protocol + @"://" + Server.host + @":" + Server.port + @"/"; HttpClient httpClient = ConnectAPI(addressServer); //Connexion a l'api // On recupere le GUID de la machine pour recuperer la bonne url string url = api.ressource.user + @"/" + guid; Log.Debug("Url de la ressource: " + url); User user = null; try { // Recuperation du User HttpResponseMessage response = await httpClient.GetAsync(url).ConfigureAwait(false); response.EnsureSuccessStatusCode(); string json = await response.Content.ReadAsStringAsync().ConfigureAwait(false); user = JsonConvert.DeserializeObject <User>(json); } catch (Exception e) { Log.Error("Erreur requete GET: " + e.Message + e.GetType().ToString()); return(null); } return(user); }