Возврат ответа напрямую от HttpServer - PullRequest
1 голос
/ 25 апреля 2019

Я могу узнать об этом на днях, и это озадачило меня, и я надеялся пролить свет на эту тему о том, почему происходит такое поведение.

Вот пример того, с чем я работаю:

public class MyHttpServer : HttpServer
{
    protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
    {
        if (someCondition)
        {
            return new Task<HttpResponseMessage>(() => new HttpResponseMessage(HttpStatusCode.BadRequest));
        }

        return base.SendAsync(request, cancellationToken);
    }
}

Я ожидал, что если будет выполнено какое-то предварительное условие, я получу сообщение с плохим ответом, но вместо этого оно будет вращаться вечно, пока я не остановлю сервер, а затем клиент не получит сообщение «Строка не получена от сервер «. Что является причиной этого, и возможно ли вернуть ответное сообщение от метода SendAsync сервера?

1 Ответ

1 голос
/ 25 апреля 2019

Вы хотите вернуться из результата, так как у вас уже есть ответ

return Task.FromResult(new HttpResponseMessage(HttpStatusCode.BadRequest))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...