Spo*_*ons 18 c# json asp.net-web-api
当webApi返回null对象时,是否可以返回{}而不是null?这样可以防止我的用户在解析响应时出错.并使响应成为有效的Json响应?
我知道我可以手动设置它.当null是响应时,应该返回一个空的Json对象.但是,有没有办法自动为每个响应做到这一点?
Mar*_*ann 19
如果您正在构建RESTful服务,并且没有从资源返回任何内容,我相信返回404(未找到)比使用空主体的200(OK)响应更正确.
您可以使用a HttpMessageHandler对所有请求执行行为.下面的例子是一种方法.但是请注意,我很快就掀起了这个问题,它可能有一堆边缘错误,但它应该让你知道它是如何完成的.
public class NullJsonHandler : DelegatingHandler
{
protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
{
var response = await base.SendAsync(request, cancellationToken);
if (response.Content == null)
{
response.Content = new StringContent("{}");
} else if (response.Content is ObjectContent)
{
var objectContent = (ObjectContent) response.Content;
if (objectContent.Value == null)
{
response.Content = new StringContent("{}");
}
}
return response;
}
}
Run Code Online (Sandbox Code Playgroud)
您可以通过执行此处理程序来启用
config.MessageHandlers.Add(new NullJsonHandler());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
26787 次 |
| 最近记录: |