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

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

作者: 元宇宙协会 | 来源:发表于2016-12-27 11:41 被阅读202次
从服务器下载文件到本地

第一种:http get请求


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

       /// <summary>
      /// 下载文件
      /// </summary>

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

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

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

相关文章

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

    从服务器下载文件到本地 第一种:http get请求 第二种:www

  • 总结 5(http协议与chorme抓包,cookie,ajax

    get 请求:从服务器获取数据,并不会对服务器资源产生影响的,使用get请求(一般情况) post请求:向服务器发...

  • GET 请求和 POST 请求的区别

    ① get 请求用来从服务器上获取资源;而 post 请求通常是用来向服务器提交数据的; ② get 请求是将表单...

  • HTTP方法详解

    GET 获取资源 GET方法用来请求服务器上的某个资源,指定的资源经过服务器端解析后会返回。GET方法是最常用的方...

  • 基本请求

    GET:用于请求服务器的资源POST:用于提交实体到服务器PUT:用于上传文件,但是由于没有校验,所以一般不使用,...

  • HTTP请求方法

    一、常见的请求方法: 1、GET:从服务器检索数据,数据由唯一的URI(统一资源标识符)识别。GET请求可以使用“...

  • 1. 公众号接入验证

    开发者提交信息后,微信服务器将发送GET请求到填写的服务器地址URL上,GET请求携带参数如下表所示: 开发者通过...

  • httpmethod

    HTTP method get:请求服务器发送某个资源 post:向服务器端输入数据 put :用请求主题部分来创...

  • get \ post \ httpclient

    采用get方式提交数据到服务器 Get请求在网页发送过程中的抓包: 在安卓代码中如何使用Get请求网络数据: 采用...

  • Flask GET and POST

    get请求和post请求: get请求:使用场景:如果只对服务器获取数据,并没有对服务器产生任何影响,那么这时候使...

网友评论

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

    本文链接:https://www.haomeiwen.com/subject/prnsvttx.html