我有以下 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 和这样的参数类 MyRequest
。
public class MyRequest
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
由于 MyRequest
是一个复杂类型,您必须像这样指定模型绑定(bind)。
public HttpResponseMessage GetGroups([FromUri]MyRequest myRequest)
现在,MyRequest
参数将包含来自 URI 路径和查询字符串的值。在这种情况下,Id
将为 12345,FirstName
将为 bill,LastName
将为 Lloyd。
关于c# - 带参数的 ASP.NET Web Api HttpClient.GetAsync,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18886626/