API REST не принимает несколько параметров в C # - PullRequest
0 голосов
/ 28 апреля 2019

Я использую .NET 4.5 framework для создания REST API. Этот API имеет метод get с несколькими параметрами, но когда я вызываю API, он показывает, что второй параметр неверного запроса равен нулю. На самом деле, я передаю значение для второго параметра. Ниже приведен способ реализации,

[HttpGet()]
[Route("api/Mycontroller/{useid:int}")]
public List<GetDetails> GET([FromUri()] int useid,  DateTime loginDate)
{
    // Some logic
}

Запрос через C # код:

HttpClient client = new HttpClient();
client.BaseAddress = new Uri("http://localhost/abc/");
client.DefaultRequestHeaders.Clear();

client.DefaultRequestHeaders.Accept.Add(
            new MediaTypeWithQualityHeaderValue("application/json"));

HttpResponseMessage clientResponse = Task.Run(async () => { return await client.GetAsync("api/Mycontroller/" + userid+"?LoginDate=" +TodaysDateParameter); }).Result;

Здесь результат возвращает нулевое значение из-за неверного запроса.

Я пробовал различные возможности строки запроса, но ничего не получалось. Я пытался удалить маршрут fromuri(), fromBody(), но это также не помогло.

Что я делаю не так?

1 Ответ

1 голос
/ 28 апреля 2019

Вам также необходимо добавить ваш второй параметр к атрибуту [Route] в вашем методе, например:

[Route("api/Mycontroller/{useid:int}/{loginDate}")]
public List<GetDetails> GET([FromUri()] int useid,  DateTime loginDate)

Затем вы можете вызвать свой метод API следующим образом:

string queryUrl = $"api/Mycontroller/{userid}/{TodaysDateParameter}";

HttpResponseMessage clientResponse = Task.Run(async () => { return await client.GetAsync(queryUrl).Result;
...