. net Core控制台应用中的Http监听器
本文关键字:Http 监听器 应用 Core 控制台 net | 更新日期: 2023-09-27 18:05:05
我开始调查。net核心,我有点迷路了。
我试图创建一个接受Http请求的控制台应用程序,如HttpListener,但它不存在于。net Core.
我搜索了很多,只发现一些帖子提到它将不存在。
所以,我的问题是,有可能接受Http请求在一个。net核心控制台应用程序?
如果是,使用哪些类?
欢呼。
我交叉链接到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.cs
的Configure
方法中,您可以使用
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();
}
}
}
}