【发布时间】:2016-07-13 18:19:22
【问题描述】:
在 WebAPI 应用程序中,我抛出异常,并被捕获。然后我这样做:
catch (Exception e)
{
return Request.CreateResponse(HttpstatusCode.BadRequest);
}
在调用方,消息是预期的状态码 400。
当我这样做时:
catch (Exception e)
{
return Request.CreateResponse(HttpstatusCode.BadRequest, myFile);
}
如果myFile 是HttpPostedFile,调用者会得到一个 500 代码。
HttpstatusCode.BadRequest == 400。在第二种情况下,调用者如何获得 500?
【问题讨论】:
-
myFile 变量的类型是 HttpPostedFile?试试这个
new StreamReader(myFile.InputStream).ReadToEnd();,而不是只传入 myFile 作为第二个参数。 -
该行执行,但内容当然是乱码。
-
你能发布实际文件和乱码响应吗?
-
我无法发布实际文件,因为它包含敏感信息。我确定响应只是二进制的。
-
猜测:400 返回码不允许“内容”,因此您会遇到异常 - 报告为 500 状态。
标签: c# .net asp.net-web-api httpresponsemessage