C# Web API中的多内容响应

C# Web API中的多内容响应,c#,asp.net-web-api,C#,Asp.net Web Api,我希望能够在Web API中为请求返回复杂响应。例如,我想用一些复杂的对象返回流。 我尝试使用MultipartFormDataContent执行此操作: public static HttpResponseMessage GetMultipartResponse<T>(T responseData, Stream streamToReturn) { return new HttpResponseMessage {

我希望能够在Web API中为请求返回复杂响应。例如,我想用一些复杂的对象返回流。 我尝试使用MultipartFormDataContent执行此操作:

    public static HttpResponseMessage GetMultipartResponse<T>(T responseData, Stream streamToReturn)
    {
        return new HttpResponseMessage
        {
            Content = new MultipartContent
            {
                new StreamContent(streamToReturn),
                new ObjectContent<T>(responseData, new JsonMediaTypeFormatter())
            }
        };
    }
在客户端或服务器端没有其他异常,我无法通过打开错误详细信息获取更多信息:

config.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Always;
更新: 尝试使用以下命令读取客户端上的响应:

var result = await response.Content.ReadAsMultipartAsync();
得到了这个例外:

提供的“HttpContent”实例无效。它没有以“multipart/”开头的内容类型标头

我哪里出错了

更新2: 我在服务器端有正常响应:

    StatusCode: 200, ReasonPhrase: 'OK', Version: 1.1, Content: System.Net.Http.MultipartContent, Headers:
    {
      Content-Type: multipart/multipart; boundary="3e6d3573-9031-41a7-b7f4-d1421bc1451d"
    }

我发现了错误。我使用以下方法返回内部的多部分内容:

        using (var stream = MyFileStream())
        {
            var respone = MultipartResponseHelper.GetMultipartResponse(response, stream, Request);
            return respone;
        }

因此,它返回正确的响应,但随后将处理multipartContent内部的流,这就是问题的原因。

我发现了错误。我使用以下方法返回内部的多部分内容:

        using (var stream = MyFileStream())
        {
            var respone = MultipartResponseHelper.GetMultipartResponse(response, stream, Request);
            return respone;
        }
所以它返回正确的响应,但随后将处理multipartContent中的流,这就是问题的原因