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); }
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); }
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); }
/// <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))); } }
/// <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))); } }