public async static Task <ApiResponse> Get <T>(string Path, bool Authenticate = false, bool RefreshToken = true) where T : class { var network = Connectivity.NetworkAccess; if (network != NetworkAccess.Internet) { return(new ApiResponse(false, null, "Không có kết nối Internet")); } try { var client = BsdHttpClient.Instance(); ApiResponse res = new ApiResponse(); if (Authenticate) { client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", UserLogged.AccessToken); } client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); HttpResponseMessage response = await client.GetAsync(Path); if (response.IsSuccessStatusCode) { string body = await response.Content.ReadAsStringAsync(); res.IsSuccess = true; res.Content = JsonConvert.DeserializeObject <T>(body); } else if (response.StatusCode == System.Net.HttpStatusCode.BadRequest) { res.IsSuccess = true; var body = await response.Content.ReadAsStringAsync(); res.Content = JsonConvert.DeserializeObject <T>(body); } else if (response.StatusCode == System.Net.HttpStatusCode.Unauthorized) { //if (response.Headers.Contains("Token-Expired")) //{ //} //if (UserLogged.IsLogged && Authenticate && RefreshToken) //{ // ApiResponse loginResponse; // if (UserLogged.FacebookId != string.Empty) // { // loginResponse = await LoginFacebook(UserLogged.Email, UserLogged.FacebookId); // } // else if (UserLogged.GoogleId != string.Empty) // { // loginResponse = await LoginGoogle(UserLogged.Email, UserLogged.GoogleId); // } // else if (UserLogged.ZaloId != string.Empty) // { // loginResponse = await LoginZalo(UserLogged.ZaloId); // } // else // { // loginResponse = await Login(UserLogged.UserName, UserLogged.Password); // } // if (loginResponse.IsSuccess) // { // AuthResponse authResponse = JsonConvert.DeserializeObject<AuthResponse>(loginResponse.Content.ToString()); // UserLogged.SaveLogin(authResponse); // res = await Get<T>(Path, true, false); // } // else // { // res.Message = "Vui long dang nhap lai"; // res.IsSuccess = false; // } //} //else //{ // // loi dang nhap, co token user pass nhung ko dang nhap duoc. // res.Message = "Vui long dang nhap lai"; // res.IsSuccess = false; //} } else { var body = await response.Content.ReadAsStringAsync(); res.Message = body; res.IsSuccess = false; } return(res); } catch (Exception ex) { return(new ApiResponse() { IsSuccess = false, Message = ex.Message }); } }
public async static Task <ApiResponse> Put(string Path, object formContent, bool Authenticate = false, bool RefreshToken = true) { var network = Connectivity.NetworkAccess; if (network != NetworkAccess.Internet) { return(new ApiResponse(false, null, "Không có kết nối Internet")); } try { var client = BsdHttpClient.Instance(); ApiResponse res = new ApiResponse(); //client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", Token); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); if (Authenticate) { client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", UserLogged.AccessToken); } HttpResponseMessage response; if (formContent == null) { var request = new HttpRequestMessage(HttpMethod.Put, Path); response = await client.SendAsync(request); } else { string objContent = JsonConvert.SerializeObject(formContent); HttpContent content = new StringContent(objContent, Encoding.UTF8, "application/json"); response = await client.PutAsync(Path, content); } if (response.IsSuccessStatusCode) { var body = await response.Content.ReadAsStringAsync(); return(JsonConvert.DeserializeObject <ApiResponse>(body)); } else if (response.StatusCode == System.Net.HttpStatusCode.BadRequest) { var body = await response.Content.ReadAsStringAsync(); return(JsonConvert.DeserializeObject <ApiResponse>(body)); } else if (response.StatusCode == System.Net.HttpStatusCode.Unauthorized) { //if (UserLogged.IsLogged && Authenticate && RefreshToken) //{ // ApiResponse loginResponse; // if (UserLogged.FacebookId != string.Empty) // { // loginResponse = await LoginFacebook(UserLogged.Email, UserLogged.FacebookId); // } // else if (UserLogged.GoogleId != string.Empty) // { // loginResponse = await LoginGoogle(UserLogged.Email, UserLogged.GoogleId); // } // else if (UserLogged.ZaloId != string.Empty) // { // loginResponse = await LoginZalo(UserLogged.ZaloId); // } // else // { // loginResponse = await Login(UserLogged.UserName, UserLogged.Password); // } // if (loginResponse.IsSuccess) // { // AuthResponse authResponse = JsonConvert.DeserializeObject<AuthResponse>(loginResponse.Content.ToString()); // UserLogged.SaveLogin(authResponse); // res = await Put(Path, formContent, true, false); // } // else // { // res.Message = "Vui long dang nhap lai"; // res.IsSuccess = false; // } //} //else //{ // // loi dang nhap, co token user pass nhung ko dang nhap duoc. // res.Message = "Vui long dang nhap lai"; // res.IsSuccess = false; //} } else { var body = await response.Content.ReadAsStringAsync(); res.Message = "Lỗi"; res.IsSuccess = false; } return(res); } catch (Exception ex) { return(new ApiResponse() { IsSuccess = false, Message = ex.Message }); } }