WebAPI не работает при отправке данных как json - PullRequest
1 голос
/ 27 марта 2020

Я только начал изучать WebAPI,

Когда я пытаюсь вызвать функцию Api / TessterFunction и отправить параметр данных как JSON ( {"Test": "TEST"} ) я получил этот ответ "Не найдено ни одного ресурса HTTP, соответствующего запросу" ,

Но при попытке вызвать его и отправить данные в виде строки запроса (http: // localhost / myProject / myApi / TesterFunction? Test = "TEST ") это работает и готово.

[HttpPost]
[Route("TesterFunction")]
public HttpResponseMessage TesterFunction(string Test)
{
    try
    {
        myClass myObject= new myClass();

        if (myObject.myStordProcedure(CompanyCode))
        {
            return Request.CreateResponse(HttpStatusCode.OK, "Done");
        }
        else
        {
            return Request.CreateResponse(HttpStatusCode.BadRequest, "SP not executed");
        }
    }
    catch(Exception e)
    {
        return Request.CreateErrorResponse(HttpStatusCode.BadRequest, e);
    }

} 

1 Ответ

0 голосов
/ 27 марта 2020

Это не сработает, потому что ваш метод веб-API принимает только строковый параметр.

То, что вы можете сделать, это;

  1. Добавьте класс, где свойства будут связаны
public class ReceiveModel{
   public string Test {get;set;}
}
Затем замените метод веб-API на параметр ReceiveModel.
[HttpPost]
[Route("TesterFunction")]
public HttpResponseMessage TesterFunction(ReceiveModel model)
{
    // see the property here
    Console.WriteLine(model.Test);

    try
    {
        myClass myObject= new myClass();

        if (myObject.myStordProcedure(CompanyCode))
        {
            return Request.CreateResponse(HttpStatusCode.OK, "Done");
        }
        else
        {
            return Request.CreateResponse(HttpStatusCode.BadRequest, "SP not executed");
        }
    }
    catch(Exception e)
    {
        return Request.CreateErrorResponse(HttpStatusCode.BadRequest, e);
    }

}
...