直接从 HttpServer 返回响应

Returning response directly from HttpServer

前几天我可以解决这个问题,这让我感到困惑,我希望能对这个问题有所了解,为什么会发生这种行为。

这是我正在使用的示例:

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);
    }
}

我预计如果满足某些先决条件,我会收到错误的响应消息,但相反,它只会一直旋转直到我停止服务器然后客户端收到一条消息,"No data received from the server." 是什么原因造成的,是否可以 return 来自服务器 SendAsync 方法的响应消息?

你想要return结果,因为你已经有了响应

return Task.FromResult(new HttpResponseMessage(HttpStatusCode.BadRequest))