Вызов API REST показывает ошибку 404 - PullRequest
0 голосов
/ 10 июня 2018

Я пытаюсь отправить данные в посте вызова остальных API.Поскольку данные довольно большие, поэтому я не могу отправить их, используя строку запроса.Ниже приведен пост-вызов My Ajax,

var urlstring = 'http://localhost/PersonAPI/api/Operations/TestMethod'
 $.ajax({
                            type: "POST",
                            url: urlstring,
                            contentType: "application/json; charset=utf-8",
                            dataType: "json",
                            data:
                                {
                                    'employeedetails':JSON.stringify(exceljson)
                                },

                            success: function (data) {
                              //Some operation


                            }

                        });

API-интерфейс My Rest содержит несколько методов публикации, ниже - контроллер API,

public class OperationsController : ApiController
{

    [System.Web.Http.HttpPost]
    [HttpRoute("api/Operations/UploadDetails")]
    public HttpResponseMessage UploadDetails(string EmployeeDetails)
    {
        //SomeCode
        return  Request.CreateResponse(HttpStatusCode.OK, response.GenerateResponse());
    }


     [System.Web.Http.HttpPost]
     [System.Web.Http.ActionName("TestMethod")]
     public HttpResponseMessage TestMethod(string EmployeeDetails)
     {
        //SomeCode
         return Request.CreateResponse(HttpStatusCode.OK, response.GenerateResponse());
     }
}

после отправки вызова отображается ошибка 404.Я пытался использовать данные формы, но он возвращает массив строк.Я передаю список объектов. Этот объект имеет 6 свойств.Входной список преобразуется в строку json при передаче из jquery.Я не понимаю, как передать данные

Ответы [ 3 ]

0 голосов
/ 10 июня 2018

В данный момент EmployeeDetails ожидает параметр строки запроса.Вы должны использовать [FromBody]:

 [System.Web.Http.HttpPost]
 [System.Web.Http.ActionName("TestMethod")]
 public HttpResponseMessage TestMethod([FromBody]EmployeeDetails employeeDetails)
 {
    //SomeCode
     return Request.CreateResponse(HttpStatusCode.OK, response.GenerateResponse());
 }

и создать соответствующую модель:

public class EmployeeDetails
{
    // add your properties
}

, а во внешнем интерфейсе ваш объект запроса должен выглядеть так:

{
    type: "POST",
    url: urlstring,
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    data: JSON.stringify(exceljson)
}
0 голосов
/ 10 июня 2018

Эта проблема решена, когда я использовал HttpRoute

Ниже приведен код,

[HttpRoute("api/operations/TestMethod")] 
public HttpResponseMessage TestMethod(string EmployeeDetails)
     {
        //SomeCode
         return Request.CreateResponse(HttpStatusCode.OK, response.GenerateResponse());
     }
0 голосов
/ 10 июня 2018

404 ошибка означает, что клиент был в состоянии связаться с данным сервером, но сервер не смог найти то, что было запрошено. Я думаю, что сначала вы должны сначала проверить свой API в POSTMAN. Работает или нет. Могу ли я увидеть ваш бэкэнд?код Итак, я могу попытаться решить вашу проблему

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...