private IEnumerator LoadTextAsync(WebPostTask task) { int timeout = 60; TimeoutTask timeoutTask = new TimeoutTask((float)timeout, delegate() { if (task != null && task.IsRunning) { FMLogger.vCore("LoadTextAsync timeout"); task.Result(false, null); } }); timeoutTask.Run(); for (int i = 0; i < task.BaseUrls.Length; i++) { using (UnityWebRequest www = UnityWebRequest.Post(task.BaseUrls[i] + task.RelativeUrl, task.Data)) { yield return(www.Send()); if (task == null || !task.IsRunning) { yield break; } if (!www.isNetworkError && www.responseCode == 200L) { string text = www.downloadHandler.text; if (!string.IsNullOrEmpty(text)) { timeoutTask.Cancel(); task.Result(true, text); } else { timeoutTask.Cancel(); task.Result(false, null); } this.SendConnectionResume(); yield break; } } } if (task.IsRunning) { timeoutTask.Cancel(); task.Result(false, null); } this.SendConnectionError(); yield break; }
public void LoadText(WebPostTask task) { base.StartCoroutine(this.LoadTextAsync(task)); }