private IEnumerator DownloadString()
        {
            WebOp _webOp = webOp;

            try
            {
                UnityWebRequest webRequest = webOp.CreateWebRequest(cookies);
                yield return(webRequest.Send());

                lock ( syncObj )
                {
                    webOp = null;
                }

                if (OnDownloadStringComplete != null)
                {
                    bool      cancelled = _webOp.Cancelled && webRequest.isError;
                    Exception error     = webRequest.isError ? new Exception(webRequest.error) : null;
                    string    result    = webRequest.isError ? null : webRequest.downloadHandler.text;

                    OnDownloadStringComplete(cancelled, error, result, _webOp.userState);
                }
            }
            finally
            {
                if (_webOp != null)
                {
                    _webOp.Dispose();
                }
            }
        }
        private IEnumerator DownloadFile()
        {
            WebOp _webOp = webOp;

            try
            {
                UnityWebRequest webRequest = webOp.CreateWebRequest(cookies);
                webRequest.Send();

                while (!webRequest.isDone)
                {
                    if (OnDownloadFileProgressChange != null)
                    {
                        OnDownloadFileProgressChange((long)webRequest.downloadedBytes, ((ToFileDownloadHandler)webRequest.downloadHandler).ContentLength);
                    }

                    yield return(null);
                }

                lock ( syncObj )
                {
                    webOp = null;
                }

                bool cancelled = _webOp.Cancelled && webRequest.isError;
                if (!cancelled)
                {
                    if (OnDownloadFileProgressChange != null)
                    {
                        long contentLength = ((ToFileDownloadHandler)webRequest.downloadHandler).ContentLength;
                        OnDownloadFileProgressChange(contentLength, contentLength);
                    }
                }

                string cookie = webRequest.GetResponseHeader("set-cookie");
                if (cookie != null && cookie.Length > 0)
                {
                    cookies[webRequest.url] = cookie;
                }

                if (OnDownloadFileComplete != null)
                {
                    Exception error = webRequest.isError ? new Exception(webRequest.error) : null;
                    OnDownloadFileComplete(cancelled, error, _webOp.userState);
                }
            }
            finally
            {
                if (_webOp != null)
                {
                    _webOp.Dispose();
                }
            }
        }
Пример #3
0
        private IEnumerator DownloadString()
        {
            WebOp _webOp = webOp;

            try
            {
                Exception       error      = null;
                UnityWebRequest webRequest = null;

                try
                {
                    webRequest = webOp.CreateWebRequest(cookies);
                }
                catch (Exception e)
                {
                    error      = e;
                    webRequest = null;
                }

                if (webRequest != null)
                {
                    yield return(webRequest.Send());
                }

                lock ( syncObj )
                {
                    webOp = null;
                }

                if (OnDownloadStringComplete != null)
                {
                    if (error == null)
                    {
                        bool cancelled = _webOp.Cancelled && webRequest.isNetworkError;
                        error = webRequest.isNetworkError ? new Exception(webRequest.error) : null;
                        string result = webRequest.isNetworkError ? null : webRequest.downloadHandler.text;

                        OnDownloadStringComplete(cancelled, error, result, _webOp.userState);
                    }
                    else
                    {
                        OnDownloadStringComplete(false, error, null, _webOp.userState);
                    }
                }
            }
            finally
            {
                if (_webOp != null)
                {
                    _webOp.Dispose();
                }
            }
        }
Пример #4
0
        private IEnumerator DownloadFile()
        {
            WebOp _webOp = webOp;

            try
            {
                Exception       error      = null;
                UnityWebRequest webRequest = null;

                try
                {
                    webRequest = webOp.CreateWebRequest(cookies);
#if UNITY_2017_2_OR_NEWER
                    webRequest.SendWebRequest();
#else
                    webRequest.Send();
#endif
                }
                catch (Exception e)
                {
                    error      = e;
                    webRequest = null;
                }

                if (webRequest != null)
                {
                    while (!webRequest.isDone)
                    {
                        if (OnDownloadFileProgressChange != null)
                        {
                            OnDownloadFileProgressChange((long)webRequest.downloadedBytes, ((ToFileDownloadHandler)webRequest.downloadHandler).ContentLength);
                        }

                        yield return(null);
                    }
                }

                lock ( syncObj )
                {
                    webOp = null;
                }

                if (error == null)
                {
#if UNITY_2017_1_OR_NEWER
                    bool webRequestError = webRequest.isHttpError || webRequest.isNetworkError;
#else
                    bool webRequestError = webRequest.isError;
#endif

                    bool cancelled = _webOp.Cancelled && webRequestError;
                    if (!cancelled)
                    {
                        if (OnDownloadFileProgressChange != null)
                        {
                            long contentLength = ((ToFileDownloadHandler)webRequest.downloadHandler).ContentLength;
                            OnDownloadFileProgressChange(contentLength, contentLength);
                        }
                    }

                    string cookie = webRequest.GetResponseHeader("set-cookie");
                    if (cookie != null && cookie.Length > 0)
                    {
                        cookies[webRequest.url] = cookie;
                    }

                    if (OnDownloadFileComplete != null)
                    {
                        error = webRequestError ? new Exception(webRequest.error) : null;
                        OnDownloadFileComplete(cancelled, error, _webOp.userState);
                    }
                }
                else if (OnDownloadFileComplete != null)
                {
                    OnDownloadFileComplete(false, error, _webOp.userState);
                }
            }
            finally
            {
                if (_webOp != null)
                {
                    _webOp.Dispose();
                }
            }
        }
Пример #5
0
 public void DownloadFile(string url, string path, object userState)
 {
     webOp = new WebOp(url, WebOp.OpType.DownloadFile, userState, path);
 }
Пример #6
0
 public void DownloadString(string url, object userState)
 {
     webOp = new WebOp(url, WebOp.OpType.DownloadString, userState);
 }