unity-HttpWebRequest下载

本文介绍使用HttpWebRequest在Unity中进行文件下载,特别是在大文件下载时提供更好的体验。通过群友马里奥海贝提供的示例,确认HttpWebRequest在iOS平台上同样适用。代码示例中改进了进度获取和文件生成过程。注意,首次使用HttpWebRequest连接可能较慢,需关闭代理以提升速度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  之前有一篇文章谈了www下载技术,发现在实际项目的应用过程中,尤其是在大文件的下载过程若是没有断点续传的话,下载起来的体验就会很差,所以更改技术采用HttpWebRequest下载技术,刚刚开始的时候发现HttpWebRequest的命名空间是using System.Net,当看到这个时,心里的第一感觉这个下载技术可能在ios上无法进行支持,而且网上的很多文章基本都是在pc环境下进行了验证,就算有些也只是验证了安卓,这样在做移动双平台开发的时候,就怕……

  在这里要感谢unity3d群里的马里奥海贝,这个HttpWebRequest的一手demo是他给我的,之后验证了在iOS平台的下载情况,发现是完全可以使用的,最终发现HttpWebRequest是完全可以支持移动双平台的,而对于System.Net架构的东西可以支持iOS这个问题,暂时还没有搞懂,还在努力提高自己的过程中。

  对了下面代码,在原来demo的基础上,修正了下进度的获取,更改了实现了现在过程中先生成临时文件,当想在完成后再生成真正文件,当然下载超时这些基本应用在demo中没有实现,但是在实际的项目中还是需要应用的,下面demo的下载地址为无效地址,只是显示个基本样子而已,在进行实验的时候修改为真实地址即可。

代码一:

using System.IO;
using System.Net;
using System.Threading;


using UnityEngine;
public class MyHttp
{
    /// <summary>
    /// 下载进度(百分比)
    /// </summary>
    public float progress { get; private set; }
    private bool isStop;
    private Thread thread;
    /// <summary>
    /// 下载文件(断点续传)
    /// </summary>
    /// <param name="_url">下载地址</param>
    /// <param name="_filePath">本地文件存储目录</param>
    public void Download(string _url, string _fileDirectory,string _fileName)
    {
        string Temporarysuffix = ".bmp";
        string Filesuffix = ".assetbundle";
        isStop = false;
        string mUrl = _url+_fileName+Filesuffix;
        thread = new Thread(delegate ()
      
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xunni_5241

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值