【发布时间】:2023-04-01 05:08:01
【问题描述】:
我有一个外部公开的 MVC 项目。我有一个内部 Web API 项目。
由于我无法控制的原因,我无法直接公开 Web API 项目,也无法将 Web API 控制器添加到我的 MVC 项目中。
我需要创建一个 MVC 控制器来充当 Web API 控制器的代理。我需要来自 MVC 控制器的响应看起来好像直接调用了 Web API。
最好的方法是什么?
有没有比我目前更好的方法?
如何解决我遇到的错误?
这是我目前所拥有的:
MyMVCController
[HttpGet]
public HttpResponseMessage GetData(HttpRequestMessage request)
{
...
var response = proxy.GetData();
return request.CreateResponse();
}
MyProxyClass
public HttpResponseMessage GetData()
{
...
return HttpRequest(new HttpRequestMessage(HttpMethod.Get, uri));
}
private HttpResponseMessage HttpRequest(HttpRequestMessage message)
{
HttpResponseMessage response;
...
using (var client = new HttpClient())
{
client.Timeout = TimeSpan.FromSeconds(120);
response = client.SendAsync(message).Result;
}
return response;
}
在 MVC 控制器中,我在 request.CreateResponse() 行上收到 InvalidOperationException。错误说:
请求没有关联的配置对象或提供的配置为空。
任何帮助将不胜感激。我已经搜索了 Google 和 StackOverflow,但找不到在 MVC 和 Web API 之间创建此代理的好解决方案。
谢谢!
【问题讨论】:
标签: c# asp.net asp.net-mvc asp.net-web-api proxy