С помощью HttpClient веб-API ASP.NET .С getasync с параметрами

у меня есть следующая подпись метода Web Api

public HttpResponseMessage GetGroups(MyRequest myRequest)

в клиенте, как передать MyRequest вызывающему методу?

в настоящее время у меня есть что-то вроде этого

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

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

как я могу пройти request to GetAsync?

если это POST способ, я могу сделать что-то вроде этого

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

1 ответов


вы не можете отправить тело сообщения для запросов HTTP GET, и по этой причине вы не можете сделать то же самое с помощью HttpClient. Однако для передачи данных можно использовать путь URI и строку запроса в сообщении запроса. Например, у вас может быть URI like 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)

и