我必须从我在 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/