Использование веб-API в библиотеке классов - PullRequest
0 голосов
/ 20 декабря 2018

Я создаю плагин в auto-cad и использую библиотеку классов и веб-API со структурой сущностей. Но каждый раз, когда я пытаюсь использовать веб-API в моей библиотеке классов, ответ возвращает «Не найдено».Это мой код библиотеки классов

[CommandMethod("Doit")]
      public void Test()
    {
        Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;

        Checker c = new Checker() { WholeArea = 1000, BuildingArea = 200, Status = 1 };

        using (var client = new HttpClient())
        {
            client.BaseAddress =new  Uri("http://localhost:52133/api");
            client.DefaultRequestHeaders.Accept.Clear();
            client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
            HttpResponseMessage response = client.PostAsJsonAsync("Checker", c).Result;
            if (response.IsSuccessStatusCode)
            {
                ed.WriteMessage("Hello data");
            }
            else
            {
                ed.WriteMessage((response.StatusCode).ToString());
            }
        }
    }

Это мой контроллер Post Method

// POST: api/Checkers
    [ResponseType(typeof(Checker))]
    public IHttpActionResult PostChecker(Checker checker)
    {
        if (!ModelState.IsValid)
        {
            return BadRequest(ModelState);
        }

        db.Checkers.Add(checker);
        db.SaveChanges();

        return CreatedAtRoute("DefaultApi", new { id = checker.ID }, checker);
    }

Во-первых: теперь я не знаю, в чем проблема того, чтобы код возвращался не найден Во-вторыхЕсли есть возможность собирать плагины в авто-cad с использованием .net core

1 Ответ

0 голосов
/ 20 декабря 2018

Вы видите код ответа 404?Вы пытались вызвать метод API от почтальона или скрипача?Я всегда пробовал бы звонить одному из них, чтобы вы могли быть уверены, что API отвечает правильно.Это скажет вам, заключается ли проблема в вашем потребляющем коде.

Я заметил, что вы используете PostAsJsonAsync для вызова метода api, но метод api не помечен как асинхронный, может ли это быть проблемой?

Метод api также не имеет атрибута HttpPost;Я не уверен, если это требование, но я бы попробовал каждый из них в отдельности

...