Web Services 带参数的ASP.NET Web应用程序HttpClient.getAsync

xoshrz7s  于 2022-11-15  发布在  .NET
关注(0)|答案(1)|浏览(150)

我有以下WebApi方法签名

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;
ojsjcaue

ojsjcaue1#

您不能为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。

相关问题