c# - 使用来自 MVC Controller 的复杂对象对 API 端点的 Http GET 调用

标签 c# asp.net-core-mvc http-get asp.net-core-webapi

我必须从我在 NET Core 中创建的 API 中检索订单。

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

API 端点如下:

应用程序接口(interface):

[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 Controller 的操作必须调用该端点,为此,这是以下代码:

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 Controller 中的 HttpClient 执行 GET 操作。

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

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

最佳答案

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

关于c# - 使用来自 MVC Controller 的复杂对象对 API 端点的 Http GET 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43124767/

相关文章:

Angular http.get 不工作

c# - 使用 CRM SDK 时 log4net 的 FileLoadException

c# - .NET 中的模拟 ResourceManager

authentication - 使用 ASP.NET 5 MVC 6 Web API 进行 Cookie 身份验证

c# - 无法在 web api Controller 中命中断点

php - 如何在 URL 中传递 POST 参数?

c# - 从后代获取 xml 元素列表

c# - ApplicationDeployment.CheckForUpdateAsync 方法处理异常

绑定(bind)到 Asp.NET MVC Core 中的 TimeSpan 属性

java - Android BasicCookieStore、Cookies 和 HttpGet