3.37添加请求结束时需释放的资源
创建于 2026 年 8 月 17 日约 1 分钟读完
内存安全是每位程序开发者必须高度重视的问题。在发送 HTTP 请求的过程中,有时需要引入未托管的资源,例如,在发送文件时,需要从本地读取文件并以流的形式发送。这种情况下,若处理不当,可能会遇到流资源无法释放的问题。
为解决这一问题,我们可以添加在请求结束后,自动处理这些需要释放的资源:
// 打开文件并读取文件流(没有 using)var fileStream = File.OpenRead(@"C:\Workspaces\httptest.jpg");var httpRequestBuilder = HttpRequestBuilder.Post("https://furion.net/") .SetContent(fileStream); // 设置请求内容 .AddDisposable(fileStream) // 添加请求结束需要释放的资源 .AddDisposables(fileStream1, fileStream2); // 支持批量添加// 发送请求var responseMessage = await httpRemoteService.SendAsync(httpRequestBuilder);// 此时,fileStream,fileStream1 和 fileStream2 已自动释放。✅AddDisposable 方法可以接受任何实现了 IDisposable 接口的对象作为参数,并且支持重复调用,每次调用都会将新的 IDisposable 对象添加到集合中。