繁体   English   中英

带有参数的ASP.NET Web Api HttpClient.GetAsync

[英]ASP.NET Web Api HttpClient.GetAsync with parameters

我有以下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;

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM