在检查响应状态后,将RestSharp响应作为流进行处理?

Ala*_*ain 5 c# rest stream restsharp

我必须能够使用RestSharp从Rest API流式传输大型文件.这样做的规范方法是在请求上设置'ResponseWriter'属性:

var client = new RestClient
var request = new RestRequest();
IRestResponse response;
request.ResponseWriter = connectStream => {
  if(response.StatusCode == ResponseStatus.OK)
  {
     CloudStorage.UploadFromStream(connectStream);
  }
  else
  {
     LoggerService.LogErrorFromStream(connectStream);
  }
};
response = client.Execute(request);
Run Code Online (Sandbox Code Playgroud)

我的问题是, RestSharp完成请求我的ResponseWriter处理整个流之前,'response'对象(包括状态,状态代码,标题等)才可用.

这似乎违反直觉,因为用户当然可能希望根据响应状态更改响应流的处理方式.

在开始处理响应主体的流之前,如何获取此状态信息?

Jim*_*mex 3

我想这已经在这里报道过了。

看起来他们为此发布了更新,而执行此操作的方法是使用AdvancedResponseWriter

var client = new RestClient
var request = new RestRequest();
IRestResponse response;
request.AdvancedResponseWriter = (stream, response) => {
    // Should be able to access response which is an IHttpResponse
};
response = client.Execute(request);
Run Code Online (Sandbox Code Playgroud)

文档