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

如何适配RestSharp新版本的AdvancedResponseWriter新签名

适配RestSharp新版本AdvancedResponseWriter的代码修改方案

下面是适配新签名后的完整代码:

string fileName = ...;
Uri url = ...;

var restRequest = new RestRequest
{
    Method = Method.Get,
    AdvancedResponseWriter = async (message, request, restResponse) =>
    {
        // 从HttpResponseMessage中获取ContentType
        var contentType = message.Content.Headers.ContentType?.MediaType;
        if (string.IsNullOrEmpty(contentType) || contentType.Equals(OctetStreamContentType, StringComparison.OrdinalIgnoreCase))
        {
            contentType = MimeTypes.GetMimeType(GetFileName(fileName, url, OctetStreamContentType));
        }

        filePath = this.fileSystem.Path.Combine(this.fileSystem.Path.GetTempPath(), $"{connectorId}", GetFileName(fileName, url, contentType));
        this.fileSystem.Directory.CreateDirectory(this.fileSystem.Path.GetDirectoryName(filePath));

        var copySuccess = false;
        // 从响应内容中获取流
        using (var dataStream = await message.Content.ReadAsStreamAsync())
        using (var file = this.fileSystem.File.OpenWrite(filePath))
        {
            // 若CopyToWithLimit有异步版本则用await调用,同步版本直接调用即可
            copySuccess = await dataStream.CopyToWithLimitAsync(file, sizeLimit); 
            // 同步版本写法:copySuccess = dataStream.CopyToWithLimit(file, sizeLimit);
        }

        if (!copySuccess)
        {
            ...
        }
    },
}
.AddHeader(AcceptHeader, AcceptHeaderValue);

关键改动说明:

  • 签名适配:将委托参数替换为新版本要求的(HttpResponseMessage message, RestRequest request, RestResponse restResponse),同时因涉及异步流操作,给委托添加async关键字。
  • 流获取逻辑:不再直接接收Stream参数,改为通过message.Content.ReadAsStreamAsync()异步获取响应流,用using块保证流资源正确释放。
  • ContentType来源:从message.Content.Headers.ContentType?.MediaType读取响应的Content-Type,替代原有的http.ContentType。
  • 异步处理:优先使用异步版本的流复制方法并配合await;若只有同步版本,直接调用即可,但需确保响应流已通过异步方式读取完成。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 07:16:09