У меня очень странная проблема с вызовами 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 запросов на один и тот же набор данных.
Вы столкнулись с такой проблемой? Где мне искать потенциальные проблемы, вызывающие это?