You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

除ReadAsByteArrayAsync外,读取Request Content字节的其他方法有哪些?

读取Request Content字节的其他方法

除了使用ReadAsByteArrayAsync().Result同步阻塞获取字节数组外,还有以下几种常用方法:

  • 异步await方式(推荐)
    这是异步编程的标准写法,能避免同步阻塞可能引发的死锁问题:

    var bytes = await Request.Content.ReadAsByteArrayAsync();
    
  • 通过流复制转换
    先将请求内容流复制到内存流,再转换为字节数组,适合需要对流进行额外操作的场景:

    using (var memoryStream = new MemoryStream())
    {
        await Request.Content.CopyToAsync(memoryStream);
        var bytes = memoryStream.ToArray();
    }
    
  • 同步流读取(不推荐)
    对应同步版本的流复制,同样能获取字节数组,但在ASP.NET等环境中易造成线程阻塞,需谨慎使用:

    using (var memoryStream = new MemoryStream())
    {
        Request.Content.CopyTo(memoryStream);
        var bytes = memoryStream.ToArray();
    }
    
  • 先读字符串再转字节
    如果明确请求内容的编码格式,可先读取为字符串再转换为字节数组:

    var contentString = await Request.Content.ReadAsStringAsync();
    var bytes = Encoding.UTF8.GetBytes(contentString);
    

    注意:需确保编码与实际内容一致,否则会导致数据损坏。

内容的提问来源于stack exchange,提问作者Temo Qutashvili

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 06:06:19