我有一个MVC项目,该项目对外开放。我还有一个内部的Web API项目。由于某些原因,我无法直接公开Web API项目,也不能在我的MVC项目中添加Web API控制器。
我需要创建一个MVC控制器作为Web API控制器的代理。我需要从MVC控制器获得的响应看起来像是直接调用Web API。
最佳实现方法是什么?是否有更好的方法?
我目前遇到了错误,如何解决?
以下是我目前的代码:
MyMVCController
在MVC Controller中,我在request.CreateResponse()这一行代码上遇到了InvalidOperationException。错误提示说:
“请求没有关联配置对象,或者提供的配置为空。”
非常感谢您的帮助。我已经在Google和StackOverflow上搜索过,但是我还没有找到一个好的解决方案来创建MVC和Web API之间的代理。
谢谢!
我需要创建一个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 Controller中,我在request.CreateResponse()这一行代码上遇到了InvalidOperationException。错误提示说:
“请求没有关联配置对象,或者提供的配置为空。”
非常感谢您的帮助。我已经在Google和StackOverflow上搜索过,但是我还没有找到一个好的解决方案来创建MVC和Web API之间的代理。
谢谢!