C# 以编程方式将HttpRequestMessage发送到Web API管道,而无需宿主

C# 以编程方式将HttpRequestMessage发送到Web API管道,而无需宿主,c#,asp.net,asp.net-web-api,C#,Asp.net,Asp.net Web Api,我想知道是否有一种方法可以手动创建一个HTTPRequestMessage对象,并通过编程将其“发送”到Web API管道,而无需将Web API项目托管在某个地方?下面的文章中描述的内存测试就是如何实现这一点的示例: 请注意,这是一篇老文章,但大多数概念仍然相关。下面文章中描述的内存测试是如何实现这一点的示例: 请注意,这是一篇旧文章,但大多数概念仍然相关。您可以创建一个HttpServer,然后将其传递给HttpClient构造函数。请参阅下面的代码片段: Htt

我想知道是否有一种方法可以手动创建一个HTTPRequestMessage对象,并通过编程将其“发送”到Web API管道,而无需将Web API项目托管在某个地方?

下面的文章中描述的内存测试就是如何实现这一点的示例:


请注意,这是一篇老文章,但大多数概念仍然相关。

下面文章中描述的内存测试是如何实现这一点的示例:


请注意,这是一篇旧文章,但大多数概念仍然相关。

您可以创建一个HttpServer,然后将其传递给HttpClient构造函数。请参阅下面的代码片段:

            HttpConfiguration configuration = new HttpConfiguration();
            configuration.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
            );


            var server = new HttpServer(configuration);

            var client = new HttpClient(server);

            Task<HttpResponseMessage> task = client.GetAsync("http://www.whatever/yourcontroller");
HttpConfiguration配置=新的HttpConfiguration();
configuration.Routes.MapHttpRoute(
名称:“DefaultApi”,
routeTemplate:“api/{controller}/{id}”,
默认值:新建{id=RouteParameter.Optional}
);
var server=新的HttpServer(配置);
var client=新的HttpClient(服务器);
Task=client.GetAsync(“http://www.whatever/yourcontroller");

您可以创建一个HttpServer,然后将其传递给HttpClient构造函数。请参阅下面的代码片段:

            HttpConfiguration configuration = new HttpConfiguration();
            configuration.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
            );


            var server = new HttpServer(configuration);

            var client = new HttpClient(server);

            Task<HttpResponseMessage> task = client.GetAsync("http://www.whatever/yourcontroller");
HttpConfiguration配置=新的HttpConfiguration();
configuration.Routes.MapHttpRoute(
名称:“DefaultApi”,
routeTemplate:“api/{controller}/{id}”,
默认值:新建{id=RouteParameter.Optional}
);
var server=新的HttpServer(配置);
var client=新的HttpClient(服务器);
Task=client.GetAsync(“http://www.whatever/yourcontroller");

两个答案看起来都有效,我选择了另一个,因为它更快。两个答案看起来都有效,我选择了另一个,因为它更快。