在我的服务器上:
string errorMessage = string.Format("Error: the following employeee has an invalid department: {0} {1}", new[] { employeeWithMissingDepartment.Id.ToString(), employeeWithMissingDepartment.Name });
return BadRequest(errorMessage);
如您所见,我在BadRequest
.
在客户端上,我执行以下操作:
HttpResponseMessage response = this.PostAsJsonAsync<T>("api/controller/action", parameter).Result;
if(!response.IsSuccessStatusCode)
{
error= response.ReasonPhrase;
}
在这种情况下,错误变量只会获得“BadRequest”,而不是我制作的描述性错误消息,我如何获得错误消息BadRequest
?
两种响应(HTTP OK 和 BadRequest 响应)都以不同的方式发送消息。是的,两者都发送消息的正文
单元 1:原因短语 (HTTP)
首先澄清一下ReasonPhrase这是http命令的描述(英文)......只是为了让代码更“人性化”。例子
主题 2:WebAPI 中的响应消息,响应 OK 和 BadRequest?
让我们以发送消息的 OK 响应为例。在响应的 Content 属性中(响应的类型为 OkNegotiatedContentResult)
如果我们看到BadRequest 响应(类型为 BadRequestErrorMessageResult)的响应,我们会看到设置的属性是 Message
正如我们在上面看到的,两者都支持发送“消息”,但它们是两个不同的属性。如果您要使用 BAdRequest,您需要知道这一点。
话题 3:你如何序列化(响应如何)?
以及如何阅读该答案!OK 返回响应的内容(纯文本)。但是 BadRequest 序列化为具有 Message 属性的对象
所以你应该记住这一点才能得到消息
我希望它可以帮助或指导你。
可能对您有帮助的链接
它只是这样获得的:
这与您返回 Ok 200 时相同。