POST не вызывает ожидаемый метод - PullRequest
0 голосов
/ 16 января 2020

Я работаю над ASP. Net Веб-API с двумя или более методами сообщения. Я пытаюсь использовать один из методов Post из контроллера API через HttpClient, но каждый раз вызывается первый метод Post. Ниже приведен код

public class JobController : ApiController
{
    [HttpPost]
    public HttpResponseMessage RunJob([FromBody]UserModel User)
    {
    }

[HttpPost]
    public HttpResponseMessage DownloadFile(string ExportStatusGuid, string PartnerGuid, string UserEmail, string Password)
    {
    }
}

И что я пытаюсь сделать, чтобы использовать его через HTTP-клиент:

using (var client = new HttpClient())
        {
            var arguments = new { ExportStatusGuid, PartnerGuid };
            HttpContent content = new StringContent(Newtonsoft.Json.JsonConvert.SerializeObject(arguments), Encoding.UTF8, "application/json");

            var responseTask = client.PostAsync(ApiUrl + "Job/DownloadFile", content);
            responseTask.Wait();

            if (responseTask.Result.IsSuccessStatusCode)
            {


            }
        }

Вы можете видеть, что я вызвал DownloadFile из JobController

var responseTask = client.PostAsync(ApiUrl + "Job/DownloadFile", content);

но вместо вызова Job / DownloadFile он запускает метод Job / RunJob. Я не мог понять проблему, даже я пытался добавить конфигурации маршрутов.

Конфигурация маршрута по умолчанию здесь

public static void Register(HttpConfiguration config)
    {
        // Web API configuration and services

        // Web API routes
        config.MapHttpAttributeRoutes();

        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );
    }

Пожалуйста, помогите мне относительно этой проблемы.

1 Ответ

0 голосов
/ 16 января 2020

изменить конфигурацию маршрута

 config.Routes.MapHttpRoute(
        name: "DefaultApi",
        routeTemplate: "api/{controller}/{action}/{id}",
        defaults: new { id = RouteParameter.Optional }
    );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...