首页 > 解决方案 > 如何使用 HttpClient 限制/设置上传速度?

问题描述

我的问题是,当我将文件上传到我的 ASP.Net 核心 Web API 时,如何编辑或限制上传速度。我们有很多客户的网速非常慢,所以当程序开始上传文件时,整个带宽都被占用了,在互联网上什么也做不了。我在这里有 2 个代码示例:

1:客户:

class Program
{
    static void Main(string[] args)
    {
        FileStream stream = new FileStream(@"C:\TEMP\te...", FileMode.Open);
        
        Upload(stream).Wait();
    }
    public static async Task Upload(FileStream image)
    {
        using (var client = new HttpClient())
        {
            
            var content = new MultipartFormDataContent();
            content.Add(new StreamContent(image), "te...");
            try
            {
                HttpResponseMessage response =
             await client.PostAsync("https://localhost:5001/api/uploadtest", content);
                var cont = await response.Content.ReadAsStringAsync();
                Console.WriteLine(cont);
            }
            catch(Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }
            

            
            
            Console.ReadKey();
        }
        
    }
}

2:ASP.Net Core Web-API

[Route("api/[controller]")]
[ApiController]
public class UploadTestController : ControllerBase
{
    Stream stream;
   
    // POST api/<UploadTestController>
    [DisableRequestSizeLimit]
    [HttpPost]
    public async Task<IActionResult> Post()
    {
        
        stream = Request.Body;
        try
        {
           
            using (var fstream = System.IO.File.OpenWrite(@"F:\TMP\te..."))
            {
                await stream.CopyToAsync(fstream);
            }
            return Ok("test");
        }
        catch(Exception ex)
        {
            Console.WriteLine(ex.ToString());
            return BadRequest();
        }

       
        
    }

    
}

标签: c#asp.net-coredotnet-httpclient

解决方案


推荐阅读