【发布时间】:2021-03-20 10:45:15
【问题描述】:
我有一个场景,其中执行 http POST 请求,调用另一个 get 请求并返回 get 请求的响应。这是我的代码
public class EmployeeController : ControllerBase
{
private readonly IBusControl _bus;
public EmployeeController(IBusControl bus)
{
_bus = bus;
}
[HttpPost]
public async Task<IActionResult> Emp(EmployeeModel employee)
{
Uri uri = new Uri("rabbitmq://localhost/ret_eligibility");
var endPoint = await _bus.GetSendEndpoint(uri);
await endPoint.Send(employee);
return Ok("Success");
}
[HttpGet]
[Route("getRetFund")]
public IActionResult fund()
{
Fund fund = RetFundConsumer.fund;
return Ok(fund.retfund);
}
}
我想在 POST 请求方法中调用 getRetFund 请求,这样当使用邮递员将员工数据发送到队列时,它会调用第二个服务来消费消息并发送回响应。然后此响应将显示在控制台中。 我也试过下面的POST方法。
[HttpPost]
public async Task<IActionResult> Emp(EmployeeModel employee)
{
Uri uri = new Uri("rabbitmq://localhost/ret_eligibility");
var endPoint = await _bus.GetSendEndpoint(uri);
await endPoint.Send(employee);
//return Ok("Success");
Fund fund = RetFundConsumer.fund;
return Ok("your retirement fund is " + fund.retfund);
}
但这会抛出空异常,因为它在执行 POST 请求之前调用第二个服务。我们将不胜感激。
【问题讨论】:
标签: asp.net httprequest microservices masstransit