Exemple #1
0
    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;
    }
Exemple #2
0
 public void LoadText(WebPostTask task)
 {
     base.StartCoroutine(this.LoadTextAsync(task));
 }