压缩删除Web API抛出异常

时间:2013-07-22 16:20:30

标签: asp.net asp.net-mvc asp.net-web-api

我在这里按解决方案实施了压缩:

Compress HTTP GET Response

但是,我的删除Web API引发了异常:

public HttpResponseMessage Delete(int id)
    {
        if (_repo == null)
        {
            _uow = DependencyResolver.Current.GetService<TPS.Data.Can.IUnitOfWork>();
            _repo = _uow.TradeSpendRepository;
        }
        if (!_repo.Delete(id))
        {
            return Request.CreateResponse(HttpStatusCode.NotFound);
        }
        _uow.Save();
        return Request.CreateResponse(HttpStatusCode.OK);
    }

CompressedContent的构造函数中抛出异常,因为content为null:

if (content == null)
{
   throw new ArgumentNullException("content");
}

我想回复状态代码是不够的!什么是防止此异常的最佳方法?

1 个答案:

答案 0 :(得分:0)

由于此处没有内容,因此无需在此处创建CompressedContent,因此您应在消息处理程序中添加其他检查。

示例:

if (response.Content != null && response.RequestMessage.Headers.AcceptEncoding != null)
{
    string encodingType = response.RequestMessage.Headers.AcceptEncoding.First().Value;

    response.Content = new CompressedContent(response.Content, encodingType);
}