C# Web API中的多内容响应
我希望能够在Web API中为请求返回复杂响应。例如,我想用一些复杂的对象返回流。 我尝试使用MultipartFormDataContent执行此操作: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 {
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中的流,这就是问题的原因