public IEnumerator CallLogin(string Username, string Password) { LoginDto loginDto = new LoginDto(); loginDto.Username = Username; loginDto.Password = Password; string jsonString = JsonUtility.ToJson(loginDto); UnityWebRequest www = UnityWebRequest.Put(URL, jsonString); www.method = "POST"; // For some reason UnityWebRequest applies URL encoding to POST message payloads. URL encoding the payload is an ASP.NET webform thing. // see https://forum.unity.com/threads/unitywebrequest-post-url-jsondata-sending-broken-json.414708/ for more info www.SetRequestHeader("Content-Type", "application/json"); yield return(www.SendWebRequest()); if (www.error != null) { byte[] result = www.downloadHandler.data; string badRequestJSON = System.Text.Encoding.Default.GetString(result); BadRequestMessage badRequestMessage = JsonUtility.FromJson <BadRequestMessage>(badRequestJSON); errorMessage.text = badRequestMessage.message; } else { Debug.Log("succes"); // check the message --> if no users exists message --> clear fields // else parse user object from backend byte[] result = www.downloadHandler.data; string userJSON = System.Text.Encoding.Default.GetString(result); UserManager.UserDto userDto = JsonUtility.FromJson <UserManager.UserDto>(userJSON); UserManager.Instance.User = userDto; // set main user variable in singleton class // navigate back to main SceneManager.LoadScene(4); } }
public IEnumerator CallRegister(string Username, string Password, string FirstName, string LastName) { RegisterDto registerDto = new RegisterDto { FirstName = FirstName, LastName = LastName, Password = Password, Username = Username }; string jsonString = JsonUtility.ToJson(registerDto); Debug.Log(jsonString); UnityWebRequest www = UnityWebRequest.Put(URL, jsonString); www.method = "POST"; www.SetRequestHeader("Content-Type", "application/json"); yield return(www.SendWebRequest()); if (www.error != null) { byte[] result = www.downloadHandler.data; string badRequestJSON = System.Text.Encoding.Default.GetString(result); BadRequestMessage badRequestMessage = JsonUtility.FromJson <BadRequestMessage>(badRequestJSON); ErrorMessage.text = badRequestMessage.message; } else { // navigate back to Login scene SceneManager.LoadScene(2); } }
public static async Task <T> Post <T>(object controller, object method, T objectToPost) { try { var content = new StringContent(JsonHelper.Serialize(objectToPost), Encoding.UTF8, "application/json"); var responseMessage = await _client.PostAsync(controller + $"/{method}", content); if (responseMessage.IsSuccessStatusCode) { var json = await responseMessage.Content.ReadAsStringAsync(); if (!string.IsNullOrEmpty(json)) { return(JsonHelper.Deserialize <T>(json)); } } else { var json = await responseMessage.Content.ReadAsStringAsync(); BadRequestMessage badRequest = JsonHelper.Deserialize <BadRequestMessage>(json); QModernMessageBox.Show(badRequest.Message, "Internal Server Error", QModernMessageBox.QModernMessageBoxButtons.Ok); } return(default(T)); } catch (Exception ex) { throw new InternalServerError(ex); } }