0

ここでソリューションごとに圧縮を実装しました:

HTTP GET 応答の圧縮

ただし、私の削除 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);
    }

コンテンツが null であるため、CompressedContent のコンストラクターで例外がスローされます。

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

ステータス コードを返すだけでは不十分だと思います。この例外を防ぐ最善の方法は何ですか?

4

1 に答える 1

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);
}
于 2013-07-22T16:30:55.320 に答える