В более новых версиях (например, .NET 8) я могу использовать:
Код: Выделить всё
var updatedJsonObject = JsonConvert.SerializeObject(status, new JsonSerializerSettings
{
ContractResolver = new CamelCasePropertyNamesContractResolver()
});
string response = updatedJsonObject.ToString();
return Results.Text(response, "application/json");
Код: Выделить всё
"contentType":"application/json","statusCode":null
Вот что я должен получить:
Код: Выделить всё
{ "status": "OK" }
Код: Выделить всё
{ "content": "{ "status": "OK" }", "contentType": "application/json", "statusCode": null }
У меня это отлично работает в проекте ASP.NET Core 8, но я пытаюсь обновить устаревший проект, использующий .NET 6, и не могу его обновить.
Веб-API использует Kestrel с подпись:
Код: Выделить всё
[HttpPost]
public async Task Post()
Причина, по которой я не могу использовать фрагментирование, заключается в том, что взаимодействующие устройства представляют собой встроенные системы с ограниченными ресурсами. У них нет такой роскоши, как код .net. Они написаны на C. Они полагаются на Content-Length для полной обработки ответа от сервера. При фрагментированном кодировании устройства не могут обработать ответ, поскольку Content-Length не определен. Обратная косая черта взята из копирования/вставки из Postman. Нет необходимости в потоковой передаче; сообщения очень малы.
Рабочий проект, использующий .NET 8, не отправляет результаты в виде фрагментов и имеет правильную длину содержимого. Просто пытаюсь добиться такого же поведения в этой версии .NET 6.