private IEnumerator StartRequest(RequestContainer requestContainer) { byte[] postData = null; if (requestContainer.Request.Verb == Request.VERB.POST) { string body = JsonConvert.SerializeObject(requestContainer.Request.Data); postData = System.Text.Encoding.UTF8.GetBytes(body); } else { requestContainer.FullUrl += "?"; string jsonParams = JsonConvert.SerializeObject(requestContainer.Request.Data); Dictionary <string, object> urlParams = JsonConvert.DeserializeObject <Dictionary <string, object> >(jsonParams); bool firstParam = true; foreach (var p in urlParams) { if (!firstParam) { requestContainer.FullUrl += "&"; } requestContainer.FullUrl += p.Key + "=" + p.Value; if (firstParam) { firstParam = false; } } } WWW www = new WWW(requestContainer.FullUrl, postData, requestContainer.Request.Header); if (OnRequestStart != null) { OnRequestStart.Invoke(); } yield return(www); //No error? if (string.IsNullOrEmpty(www.error)) { requestContainer.JsonResponse = www.text; requestContainer.SuccessCallback(); } else { MundiPaggError error = ConvertError(www.error, www.text); //Call error callback requestContainer.ErrorCallback(error); } if (OnRequestEnd != null) { OnRequestEnd.Invoke(); } }
public void CreateNewCharacter(WWWForm forms, OnRequestEnd onRequestEnd) { string url = API + "NewCharacter.php"; if (coWebReq != null) { StopCoroutine(coWebReq); } coWebReq = StartCoroutine(RequestWeb(url, forms, 10f, "Create new Character", onRequestEnd)); }
public void Session_List(OnRequestEnd onRequestEnd) { string url = API + "SessionList.php"; WWWForm forms = new WWWForm(); //forms.AddField("loginPost", accountName); //string encodedPswd = accountPassword.GetHashCode().ToString(); //forms.AddField("passwordPost", encodedPswd); if (coWebReq != null) { StopCoroutine(coWebReq); } coWebReq = StartCoroutine(RequestWeb(url, forms, 10f, "Refresh session list", onRequestEnd)); }
public void Create_Account(string accountName, string accountPassword, OnRequestEnd onRequestEnd) { string url = API + "NewAccount.php"; WWWForm forms = new WWWForm(); forms.AddField("loginPost", accountName.ToLower()); string encodedPswd = accountPassword.GetHashCode().ToString(); forms.AddField("passwordPost", encodedPswd); if (coWebReq != null) { StopCoroutine(coWebReq); } coWebReq = StartCoroutine(RequestWeb(url, forms, 10f, "Check account", onRequestEnd)); }
public void ClassesRacesList(OnRequestEnd onRequestEnd, bool inBackground = false) { string url = API + "GetClassesRaces.php"; WWWForm forms = new WWWForm(); if (inBackground) { StartCoroutine(RequestWeb(url, forms, 10f, "Refresh classes and races", onRequestEnd, inBackground)); } else { if (coWebReq != null) { StopCoroutine(coWebReq); } coWebReq = StartCoroutine(RequestWeb(url, forms, 10f, "Refresh classes and races", onRequestEnd, inBackground)); } }
public void CharacterList(int idSession, OnRequestEnd onRequestEnd, bool inBackground = false) { string url = API + "CharactersLobby.php"; WWWForm forms = new WWWForm(); forms.AddField("SessionIDPost", idSession); if (inBackground) { StartCoroutine(RequestWeb(url, forms, 10f, "Refresh character", onRequestEnd, inBackground)); } else { if (coWebReq != null) { StopCoroutine(coWebReq); } coWebReq = StartCoroutine(RequestWeb(url, forms, 10f, "Refresh character", onRequestEnd, inBackground)); } }
IEnumerator RequestWeb(string url, WWWForm forms, float timeOut, string loadingFeedback, OnRequestEnd onRequestEnd, bool inBackground = false) { UnityWebRequest webRequest = UnityWebRequest.Post(url, forms); UnityWebRequestAsyncOperation handler = webRequest.SendWebRequest(); float timeIn = 0f; if (!inBackground) { LoadingScreen.ActiveLoading(loadingFeedback); } while (!handler.isDone) { timeIn += Time.deltaTime; if (timeIn > timeOut) { //Security webRequest.Abort(); if (!inBackground) { LoadingScreen.ActiveLoading("TIME OUT"); } yield return(new WaitForSeconds(2f)); break; } yield return(null); } //FakeDelay float minTime = 1f; if (!inBackground && timeIn < minTime) { yield return(new WaitForSeconds(minTime - timeIn)); } if (webRequest.isNetworkError || webRequest.isHttpError) { Debug.Log(webRequest.error); if (!inBackground) { LoadingScreen.ActiveLoading(webRequest.error, false, 1f); } } else { if (!inBackground) { LoadingScreen.StopLoading(); } //Call end string content = webRequest.downloadHandler.text; JsonRequest request = JsonUtility.FromJson <JsonRequest>(content); onRequestEnd(request); } yield break; }
public void CreateNewSession(string nameSession, string masterSession, string ipSession, OnRequestEnd onRequestEnd) { string url = API + "NewSession.php"; WWWForm forms = new WWWForm(); forms.AddField("nameSessionPost", nameSession); forms.AddField("masterSessionPost", masterSession); forms.AddField("ipSessionPost", ipSession); if (coWebReq != null) { StopCoroutine(coWebReq); } coWebReq = StartCoroutine(RequestWeb(url, forms, 10f, "Create new session", onRequestEnd)); }