[英]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.