【问题标题】:ASP.NET Web Api HttpClient.GetAsync with parameters带有参数的 ASP.NET Web Api HttpClient.GetAsync
【发布时间】:2013-09-24 01:30:00
【问题描述】:

我有以下 Web Api 方法签名

public HttpResponseMessage GetGroups(MyRequest myRequest)

在客户端,如何将 MyRequest 传递给调用方法?

目前,我有这样的东西

                var request = new MyRequest()
                    {
                        RequestId = Guid.NewGuid().ToString()
                    };

                var response = client.GetAsync("api/groups").Result;

如何将request 传递给GetAsync

如果是POST 方法,我可以这样做

var response = client.PostAsJsonAsync("api/groups", request).Result;

【问题讨论】:

    标签: c# asp.net web-services rest asp.net-web-api


    【解决方案1】:

    您不能为 HTTP GET 请求发送消息正文,因此,您不能使用HttpClient 执行相同的操作。但是,您可以使用请求消息中的 URI 路径和查询字符串来传递数据。例如,你可以有一个像 api/groups/12345?firstname=bill&lastname=Lloyd 这样的 URI 和像这样的参数类 MyRequest

    public class MyRequest
    {
        public int Id { get; set; }
        public string FirstName { get; set; }
        public string LastName { get; set; }
    }
    

    由于MyRequest 是一个复杂类型,你必须像这样指定模型绑定。

    public HttpResponseMessage GetGroups([FromUri]MyRequest myRequest)
    

    现在,MyRequest 参数将包含来自 URI 路径和查询字符串的值。在这种情况下,Id 将是 12345,FirstName 将是 bill,LastName 将是 Lloyd。

    【讨论】:

      猜你喜欢
      • 2017-08-30
      • 1970-01-01
      • 2019-12-04
      • 2014-07-10
      • 1970-01-01
      • 1970-01-01
      • 2014-04-18
      • 2015-10-09
      • 1970-01-01
      相关资源
      最近更新 更多