首页 > 解决方案 > 以编程方式访问 dotnet 核心项目中的 HTTP 端点

问题描述

我很好奇是否可以直接向 dotnet core (2.2) 程序中的 HTTP 请求处理程序发出请求(即,使用方法调用)。我知道我可以使用 HttpClient 向另一个(或相同的)服务器发出实际的 HTTP 请求:

var httpClient = new HttpClient();
var response = httpClient.GetAsync("http://www.coolurl.com");

但我真正想做的是从同一个 dotnet 项目中的其他位置对一个控制器端点进行 HTTP 调用。这样的事情可能吗?

如果有人感兴趣,用例是创建类似于 feathers.js 的东西,其中 SignalR 集线器自动提供对与项目中已定义的 HTTP 端点相同的功能的访问。所以基本上,如果我有一个已经为 POST /api/things 定义了端点的 HTTP 控制器,我希望能够调用一个 SignalR 集线器方法,例如:

const connection = new signalR.HubConnectionBuilder()
              .withUrl("http://www.coolurl.com/realtime")
              .configureLogging(signalR.LogLevel.Information)
              .build();
let response = await connection.invoke("POST", "/api/things", JSON.stringify({jsonBody: "payload"}))

并通过向 HTTP REST API 发出 AJAX 请求收到与我相同的响应。

标签: c#asp.net-core

解决方案


推荐阅读