. net Core控制台应用中的Http监听器

本文关键字:Http 监听器 应用 Core 控制台 net | 更新日期: 2023-09-27 18:05:05

我开始调查。net核心,我有点迷路了。

我试图创建一个接受Http请求的控制台应用程序,如HttpListener,但它不存在于。net Core.

我搜索了很多,只发现一些帖子提到它将不存在。

所以,我的问题是,有可能接受Http请求在一个。net核心控制台应用程序?

如果是,使用哪些类?

欢呼。

. net Core控制台应用中的Http监听器

我交叉链接到2017年5月13日的另一个答案,似乎对这个话题有一个更新的答案:https://stackoverflow.com/a/43954956/1209443

它说使用"。. NET Core 2.0,它有一个兼容API的跨平台HttpListener "

要构建自托管的web应用程序,请通过New Project -> Templates -> Web -> ASP.NET Core Web Application在VS2015中使用已安装的模板。

这个向导创建一个自托管的web应用程序。从条目Main方法中,您可以看到它使用WebHostBuilder,向其添加配置(特别是.UseKestrel表示web服务器),并运行它。

除了模板之外,您还可以构建自己的简单web服务器。在Startup.csConfigure方法中,您可以使用

app.Run(async (context) =>
{
    await context.Response.WriteAsync("Hello World!");
});

它允许你处理请求上下文并响应它。

试试下面的代码:

using System;
using System.IO;
using System.Net.Http;
using System.Threading.Tasks;
class Program
{
    static async Task Main(string[] args)
    {
        const int timeoutInDays = 1;
        Stream dataStream;
        StreamReader reader;
        while(true)
        {
            using (var httpClient = new HttpClient())
            {
                httpClient.Timeout = TimeSpan.FromDays(timeoutInDays);
                dataStream = await httpClient.GetStreamAsync("https://localhost:5001/api/v1/customers/streaming");
                reader = new StreamReader(dataStream);
                Console.WriteLine(await reader.ReadLineAsync());
                reader.Close();
            }
        }
    }
}