示例#1
0
        protected IEnumerator Download(string uri, string savePath, string version, DelWebRequestCallback callback, int timeout)
        {
            string fileName = uri.Split('/')[uri.Split('/').Length - 1];

            UnityWebRequest uwr = UnityWebRequest.Get(uri);

            uwr.timeout = timeout;
            DownloadFileHandler downloadFile = new DownloadFileHandler(savePath, fileName, version);

            uwr.downloadHandler = downloadFile;
            long length = downloadFile.NowLength;

            uwr.SetRequestHeader("Range", "bytes=" + length + "-");
            uwr.SendWebRequest();

            downReqMap.Add(uri, uwr);

            while (!uwr.isDone)
            {
                yield return(new WaitForEndOfFrame());

                if (callback != null && downloadFile.DownloadProgress < 1)
                {
                    callback(downloadFile.DownloadProgress, uwr);
                }
                yield return(null);
            }

            if (callback != null)
            {
                callback(downloadFile.DownloadProgress, uwr);
            }
            Dispose(uri);
        }
示例#2
0
        protected IEnumerator Download(string uri, string savePath, DelWebRequestCallback callback, int timeout)
        {
            var uwr = new UnityWebRequest(uri, UnityWebRequest.kHttpVerbGET);

            uwr.timeout         = timeout;
            uwr.downloadHandler = new DownloadHandlerFile(savePath);
            uwr.SendWebRequest();

            downReqMap.Add(uri, uwr);

            while (!uwr.isDone)
            {
                if (callback != null && uwr.downloadProgress < 1)
                {
                    callback(uwr.downloadProgress, uwr);
                }
                yield return(null);
            }

            if (callback != null)
            {
                callback(uwr.downloadProgress, uwr);
            }
            Dispose(uri);
        }
示例#3
0
        protected IEnumerator Upload(string uri, byte[] bytes, DelWebRequestCallback callback, string contentType = "application/octet-stream")
        {
            UnityWebRequest uwr      = new UnityWebRequest();
            UploadHandler   uploader = new UploadHandlerRaw(bytes);

            uploader.contentType = contentType;
            uwr.uploadHandler    = uploader;
            uwr.SendWebRequest();

            downReqMap.Add(uri, uwr);

            while (!uwr.isDone)
            {
                if (callback != null && uwr.uploadProgress < 1)
                {
                    callback(uwr.uploadProgress, uwr);
                }
                yield return(null);
            }
            if (callback != null)
            {
                callback(uwr.uploadProgress, uwr);
            }
            Dispose(uri);
        }
示例#4
0
        /// <summary>下载文件(断点续传)</summary>
        public new void Download(string uri, string savePath, string version, DelWebRequestCallback callback = null, int timeout = 0)
        {
            if (!Directory.Exists(savePath))
            {
                Directory.CreateDirectory(savePath);
            }

            if (!downReqMap.ContainsKey(uri))
            {
                coroutines.Add(uri, StartCoroutine(base.Download(uri, savePath, version, callback, timeout)));
            }
        }
示例#5
0
        /// <summary>下载文件(没有断点续传)</summary>
        public new void Download(string uri, string savePath, DelWebRequestCallback callback = null, int timeout = 0)
        {
            if (!Directory.Exists(savePath))
            {
                Directory.CreateDirectory(savePath);
            }
            string fileName = uri.Split('/')[uri.Split('/').Length - 1];

            savePath += "/" + fileName;

            if (!downReqMap.ContainsKey(uri))
            {
                coroutines.Add(uri, StartCoroutine(base.Download(uri, savePath, callback, timeout)));
            }
        }