ПО промежуточного слоя запроса выборки в пустельге, возвращающее net::ERR_INCOMPLETE_CHUNKED_ENCODING

Я пытаюсь устранить две ошибки в своем промежуточном программном обеспечении Kestrel, которое предназначено для обработки запроса на выборку и возврата некоторого JSON. (Меня не интересует использование MVC)

Код работает, но я хотел бы удалить эти две ошибки:

В хроме я получаю эту ошибку:

сеть::ERR_INCOMPLETE_CHUNKED_ENCODING 200 (ОК)

В пустельге я получаю эту ошибку:

"код состояния не может быть установлен, так как ответ уже начался"

        public void Configure(
            IApplicationBuilder app,
            IHostingEnvironment env,
            ILoggerFactory loggerFactory)
            {
    // some startup stuff...

        app.Use(async (context, next) =>
                {
                    if (context.Request.Path.HasValue && context.Request.Path.Value.Contains("searchjsfetch/"))
                    {
                        await context.Response.WriteAsync(JsonConvert.SerializeObject(simpleObject), Encoding.UTF8);
                    }
    })
}

В машинописном тексте я получаю так:

fetch(`${hostDomain}searchjsfetch/${email}/2/3`)
                    .then((response) => {
                    response.body.getReader().read().then((c) => {
                            return new TextDecoder("utf-8").decode(c.value);
                        });
                    })

person patrick    schedule 18.03.2019    source источник
comment
Что вы ожидаете получить? Промежуточное ПО — это то, что вы можете внедрить в конвейер запросов/ответов, но обычно вы не будете обрабатывать полный запрос только с помощью промежуточного ПО.   -  person Tony Ranieri    schedule 18.03.2019
comment
Просто некоторые данные JSON   -  person patrick    schedule 18.03.2019
comment
Можете ли вы уточнить, что вас беспокоит в отношении MVC, что заставляет вас избегать его?   -  person Tony Ranieri    schedule 18.03.2019


Ответы (2)


С ASP.NET Core вы будете «использовать MVC» (например, в файле startup.cs), но это не означает, что вы должны использовать MVC (представления и т. д.)… Вы будете использовать пространства имен MVC и т. д. , но вы все равно можете вернуть данные JSON. Есть пара классов, которые нацелены на API, а не на традиционный ответ представления MVC:

Первым будет ControllerBasehttps://docs.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.mvc.controllerbase?view=aspnetcore-2.2

Второй класс, который может представлять интерес, — это класс ApiControllerAttribute.

Взгляните на эту статью — https://docs.microsoft.com/en-us/aspnet/core/web-api/?view=aspnetcore-2.2

person Tony Ranieri    schedule 18.03.2019
comment
Я понял, как это сделать без MVC, если вам интересно - person patrick; 19.03.2019

Ну, это было глупо, у меня был лишний

await next();

Что вызвало проблемы

person patrick    schedule 19.03.2019