c# - 如何使用 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++ - 为什么我在自定义比较器时收到有关空指针的错误
- python - 如何找到唯一的 ID?
- ios - 使用 AVPlayer 时为什么我的视频无法在我的 UIView 中播放
- c - 模拟'&'同样终端自定义shell
- git - 缓存 GPG 密码以在 Mac 上进行 git 签名
- python - 如果在 2 个节点之间存在边,则矩阵取值为 1,否则取值为 0,来自邻接字典
- azure - 连接到 Azure 数据工厂中的 Microsoft Projects o-data 源
- reactjs - Bugsnag 显示缩小文件的 url 而不是上传源映射文件
- ruby-on-rails - 索引未显示搜索结果
- sql - Oracle SQL 总和