【发布时间】:2015-03-03 08:09:32
【问题描述】:
我正在尝试使用 HttpResponseMessage 返回一条错误消息,而我得到的只是我假设的 StringContent.ToString()。这是我的代码:
HttpResponseMessage response = new HttpResponseMessage();
if (request.Error != null)
{
response.Content = new StringContent(request.Error.Message);
response.Content.Headers.ContentType = new MediaTypeHeaderValue(ContentTypes.PlainText);
response.StatusCode = request.Error.StatusCode;
}
else
{
response.Content = new ByteArrayContent(request.PhotoAsJpeg());
response.Content.Headers.ContentType = new MediaTypeHeaderValue(ContentTypes.Jpeg);
response.StatusCode = HttpStatusCode.OK;
}
错误状态代码是 401、404 等,消息是纯文本,如“找不到照片”或“错误参数”。我的期望是,当出现错误时,状态码(401 等)和纯文本错误消息的响应。我收到的是带有状态代码 200 和以下内容的 HTML 响应:
StatusCode:400,ReasonPhrase:'Bad Request',版本:1.1,内容:System.Net.Http.StringContent,标头:{ Content-Type:text/plain }
如何获得包含我的错误消息的响应?
【问题讨论】:
-
收到
HttpResponseMessage的客户端代码是什么样的?对我来说,当我在服务器端执行response.Content = new StringContent(request.Error.Message);时,我可以在客户端执行以下操作var message = await response.Content.ReadAsStringAsync();
标签: c# asp.net-mvc