来自 MVC 控制器的带有复杂对象的对 API 端点的 Http GET 调用

Http GET call to API endpoint with complex object from MVC controller

我必须从我的 API NET Core 中获取订单。

检索是在我的 MVC 控制器使用 GET 调用另一个 NET Core 应用程序的端点的操作中进行的。

API 端点是以下端点:

API:

[HttpGet("orders/orderSearchParameters")]
    public IActionResult Get(OrderSearchParameters orderSearchParameters)
    {
        var orders = MenuService.GetMenuOrders(new GetMenuOrdersRequest { From = orderSearchParameters.From, To = orderSearchParameters.To, FoodProviderId = orderSearchParameters.FoodProviderId }).Orders;
        return Ok(orders);
    }

我的 Web 应用程序 MVC 控制器的操作必须调用该端点,为此,这是以下代码:

public IActionResult GetOrders(OrderSearchParametersModel orderSearchParameters)
    {
        var uri = string.Format(ApiUri + "menus/orders/");

        using (HttpClient httpClient = new HttpClient())
        {
            var response = httpClient.GetStringAsync(uri);
            if (response.IsCompleted)
            {
                var orders = JsonConvert.DeserializeObject<List<OrderModel>>(response.Result);
                return Ok(orders);
            }
            else
            {
                return BadRequest();
            }
        }            
    }

我找不到的是如何序列化 OrderSearchParametersModel 以使用 MVC 控制器中的 HttpClient 执行 GET 操作。

在附加的代码中,我执行了没有传入对象的 GET。

如何通过 HttpClient 使用 GET 操作发送此对象?

如果您将所有参数都放在查询字符串中,它们将被转换为 OrderSearchParametersModel,但它们需要与此模型属性名称相匹配。