我正在创建一个API控制器,基于有效载荷将请求路由到另一个Http终点,此代码运行在.Net Core 2.2上。
[Route("api/v1")]
public class RoutesController : Controller
{
[HttpPost]
[Route("routes")]
public async Task<IActionResult> Routes([FromBody]JObject request)
{
var httpClient = new HttpClient();
// here based on request httpCLient will make `POST` or `GET` or `PUT` request
// and returns `Task<HttpResponseMessage>`. Lets assume its making `GET`
// call
Task<HttpResponseMessage> response = await
httpClient.GetAsync(request["resource"]);
/* ??? what is the correct way to return response as `IActionResult`*/
}
}
根据SO帖子,我可以做到这一点
根据 SO 帖子,我可以实现这个。 return StatusCode((int)response.StatusCode, response);
但是我不确定将HttpResponseMessage
作为ObjectResult
发送是否正确。
我也想确保内容协商可以正常工作。
更新于2022年7月25日
已更新正确答案
HttpResponseMessage
将把该信息作为HttpContent
返回。 - LP13