ASP. NET усечение web api 2 json ответ - PullRequest
0 голосов
/ 16 января 2020

У меня очень странная проблема с вызовами API. Иногда ответ усекается .

  • Не существует шаблона для того, как или когда он усекается.
  • Размер ответа составляет 200 КБ, а настроенный предел ответа - 20 МБ.

Конфигурация форматеров:

private static HttpConfiguration ConfigureFormatters(this HttpConfiguration config)
{
    config.Formatters.Clear();
    config.Formatters.Add(new JsonMediaTypeFormatter());
    config.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();

    return config;
}

Упрощенный вызов API:

[HttpGet, Route]
public IHttpActionResult Explore(int cityId)
{
    var lists = exploreBuilderService.Build(cityId);
    return Ok(lists);
}

lists тип List<SomeModel>. SomeModel - это DTO без циклических ссылок.

Пример ответа:

Response Headers
Content-Type: application/json; charset=utf-8
Server: Microsoft-IIS/10.0
X-Powered-By: ASP.NET
Date: Fri, 17 Jan 2020 12:02:37 GMT
Content-Length: 290248

Data
[..., {"id":47

... - другие объекты в массиве. Похоже, json строка ответа вырезана в произвольном месте. Наше приложение android завершается с ошибкой MalformedJsonException, когда ответ приходит следующим образом. Это происходит один раз за 5-10 запросов на один и тот же набор данных.

Вы столкнулись с такой проблемой? Где мне искать потенциальные проблемы, вызывающие это?

1 Ответ

0 голосов
/ 01 февраля 2020

Проблема была с одним из наших промежуточных программ, который перехватывал ответы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...