Unity开发--网络(二)服务器使用get请求下载服务器资源

从服务器下载文件到本地

第一种:http get请求


    string urlPath = "http://www........";   //写个网络资源路径
    string localPath = @"D:VR04\longtu.mp4";

       /// 
      /// 下载文件
      /// 

    IEnumerator DownLoadFile(string url)
    {
        HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
        request.Method = "GET";
        HttpWebResponse hw = (HttpWebResponse)request.GetResponse();
        Stream stream = hw.GetResponseStream();
        FileStream fileStream = new FileStream(localPath, FileMode.Create, FileAccess.Write);
        long length = hw.ContentLength;
        long currentNum = 0;
        decimal currentProgress = 0;
 
        while (currentNum < length)
        {
            byte[] buffer = new byte[1024];
            currentNum += stream.Read(buffer, 0, buffer.Length);
            fileStream.Write(buffer, 0, buffer.Length);
            if (currentNum % 1024 == 0)
            {
                currentProgress = Math.Round(Convert.ToDecimal(Convert.ToDouble(currentNum) /Convert.ToDouble(length) * 100), 4);
                Debug.Log("当前下载文件大小:" + length.ToString() + "字节   当前下载大小:" + currentNum + "字节下载进度" + currentProgress.ToString() + "%");
            }
            else
            {
                Debug.Log("当前下载文件大小:" + length.ToString() + "字节   当前下载大小:" + currentNum + "字节"+ "字节 下载进度" + 100 + "%");

            }
            currentnn = currentProgress;
            yield return false;
        }
        hw.Close();
        stream.Close();
        fileStream.Close();
    }
    decimal currentNumShow;
    GUIStyle guistyle = new GUIStyle();

    void OnGUI()
    {
        guistyle.fontSize = 80;
        GUI.Label(new Rect(50, 50, 50, 50), currentNumShow.ToString(), guistyle);
    }

第二种:
www

    string urlPath = "http://www.....";//资源网络路径
    string file_SaveUrl = @"D:\test.rar";//资源保路径
    FileInfo file; 
    void Start ()
    {
        file = new FileInfo(file_SaveUrl);
        Debug.Log(file_SaveUrl);
        StartCoroutine(DownFile(urlPath));
    }

   
    /// 
    /// 下载文件
    /// 
    IEnumerator DownFile(string url)
    {
        WWW www = new WWW(url);
        yield return www;
        if (www.isDone)
        {
            Debug.Log("下载完成");
            byte[] bytes = www.bytes;
            CreatFile(bytes);
        }
    }

    /// 
    /// 创建文件
    /// 
    /// 
    void CreatFile(byte[] bytes)
    {
        Stream stream;
        stream = file.Create();
        stream.Write(bytes, 0, bytes.Length);
        stream.Close();
        stream.Dispose();
}

你可能感兴趣的:(Unity开发--网络(二)服务器使用get请求下载服务器资源)